【问题标题】:Statically linking libs in Visual Studio在 Visual Studio 中静态链接库
【发布时间】:2011-06-15 09:08:34
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      据我所知,没有静态链接。如果你想做静态链接,你需要使用ILMerge。即使这样,您也不应该尝试合并所需的 .Net Framework 引用,因为它们经常引用您可能会错过的其他引用。这甚至可能是不可能的,因为他们使用 GAC 进行引用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-15
        • 1970-01-01
        • 2018-08-09
        相关资源
        最近更新 更多