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

时间:2010-02-18 00:10:29

标签: dll linker shared-libraries

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

编辑:抱歉,A是一个单线程静态库。 B是一个多线程静态库,C是一个多线程DLL。 (我猜A和B从链接器的角度来看是一样的吗?)

3 个答案:

答案 0 :(得分:5)

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

在属性中 - >一般 - >配置类型 - >将此属性设置为静态库或动态库,以用于您想要静态或动态的库A和B.

在属性中 - > C / C ++ - >代码生成 - >运行时库 - >每个将链接在一起的库必须使用相同的运行时库,例如Multi-Threaded Debug DLL。

因此你可以这样做:
A - 配置类型:静态库。 Runtime Lib:多线程调试DLL。 (是的,这没关系)
B - 配置类型:动态库。 Runtime Lib:多线程调试DLL

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

答案 1 :(得分:2)

不确定B是什么,但一般的想法是肯定的。

将直接编译到exe中 B不确定这个是什么 是的,此库中的函数将在运行时链接。

答案 2 :(得分:0)

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