【发布时间】:2011-06-15 09:08:34
【问题描述】:
当您在Visual Studio中选择/MTd静态链接时,它会尝试静态链接到每个库还是系统库有一些例外?
【问题讨论】:
标签: windows visual-studio-2005 static-linking
当您在Visual Studio中选择/MTd静态链接时,它会尝试静态链接到每个库还是系统库有一些例外?
【问题讨论】:
标签: windows visual-studio-2005 static-linking
/MT 和 /MD 标志仅定义 C/C++ 运行时库的链接方式。它对其他库、系统或用户定义没有影响。
系统库,如 kernel32.lib、user32.lib 等)是导入库 - 没有可链接的静态库。
【讨论】:
说明:/MTd:定义_DEBUG 和_MT。此选项还会使编译器将库名称 LIBCMTD.lib 放入 .obj 文件中,以便链接器将使用 LIBCMTD.lib 来解析外部符号。
据我所知,没有静态链接。如果你想做静态链接,你需要使用ILMerge。即使这样,您也不应该尝试合并所需的 .Net Framework 引用,因为它们经常引用您可能会错过的其他引用。这甚至可能是不可能的,因为他们使用 GAC 进行引用。
【讨论】: