在Visual Studio中静态链接库

时间:2011-01-25 17:43:12

标签: windows visual-studio-2005 static-linking

当您在Visual Studio中选择/MTd静态链接时,它会尝试静态链接到每个lib还是系统库有一些例外?

2 个答案:

答案 0 :(得分:0)

描述:/ MTd:定义_DEBUG和_MT。此选项还会使编译器将库名称LIBCMTD.lib放入.obj文件中,以便链接器将使用LIBCMTD.lib来解析外部符号。

从我所看到的,没有静态链接。如果要进行静态链接,则需要使用ILMerge。即便如此,您也不应该尝试合并所需的.Net Framework参考,因为它们经常引用您可能会遗漏的其他参考。甚至可能因为他们使用GAC进行参考。

答案 1 :(得分:0)

/ MT和/ MD标志仅定义C / C ++运行时库的链接方式。它对其他库,系统或用户定义没有影响。

系统库,例如kernel32.lib,user32.lib等)是导入库 - 没有要链接的静态库。