代码之家  ›  专栏  ›  技术社区  ›  jamesj629

是否可以在一个项目中混合静态、多线程、DLL库?

  •  3
  • jamesj629  · 技术社区  · 16 年前

    在Visual Studio的同一个项目中是否可以使用不同的库A、B、C,其中A是静态库,B是多线程的,C是多线程的dll?或者它们对于单个.exe输出都必须是相同的类型?

    编辑:对不起,A是单线程静态库。B是多线程静态库,C是多线程DLL。(从链接器的角度看,A和B是相同的?)

    3 回复  |  直到 11 年前
        1
  •  0
  •   BarsMonster    16 年前

    您是否在谈论具有不同CRT链接类型(static,dll)的库编译器? 如果是,那就不可能了。

        2
  •  4
  •   rcz    11 年前

    您可以自由地混合静态和动态库,只要它们都使用相同的运行时libs。

    在属性->常规->配置类型->中,将要静态或动态的库A和B设置为静态库或动态库。

    在属性-gt;C/c++>代码生成-gt;运行时库-gt;每个链接在一起的库都必须使用 相同的 运行时库,例如多线程调试DLL。

    因此,您可以:
    配置类型:静态库。运行时库:多线程调试DLL。(是的,没问题)
    配置类型:动态库。运行时库:多线程调试dll

    这两个libs可以链接到同一个exe中。

        3
  •  2
  •   Suroot    16 年前

    不知道B是什么,但总的想法是肯定的。

    a将直接编译为exe B不知道这是什么 C是的,此库中的函数将在运行时链接。