【问题标题】:Getting msbuild to use MT_StaticRelease让 msbuild 使用 MT_StaticRelease
【发布时间】:2015-02-01 11:52:24
【问题描述】:

如何让 msbuild 使用 MT_StaticRelease?

我正在尝试构建的包是 LLVM 3.5.1,在 Windows 7 上使用 Visual Studio 12 64 位,我最接近的似乎应该是正确的命令行是

msbuild /p:Configuration=Release /p:RuntimeLibrary=MT_StaticRelease ALL_BUILD.vcxproj

但尝试针对 LLVM 库编译测试程序会收到类似的错误消息

LLVMSupport.lib(CommandLine.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in main-0b0089.obj

这表明 msbuild 仍在使用 /MD 而不是 /MT 并且目视构建过程似乎证实了这一点。是否缺少一些命令行选项?

【问题讨论】:

  • 您正在链接一个使用 /MD 构建的 .lib。因此,您需要为您的主项目重建该库或使用 /MD。后者非常通常是正确的选择,/MT 通常只适用于没有 DLL 依赖关系的非常简单的程序。
  • 是的,我在问如何重建 lib 并使 msbuild 使用 /MT。我的程序没有 DLL 依赖项。

标签: visual-studio msbuild llvm static-linking


【解决方案1】:

你需要在 LLVM 的 CMake 配置中进行配置:

 LLVM_USE_CRT_DEBUG=MTd
 LLVM_USE_CRT_RELEASE=MT

【讨论】:

    猜你喜欢
    • 2019-09-01
    • 2021-09-23
    • 2020-11-22
    • 2021-01-03
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    相关资源
    最近更新 更多