【发布时间】: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