让msbuild使用MT_StaticRelease

3

如何让msbuild使用MT_StaticRelease?

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

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依赖关系的非常简单的程序。 - Hans Passant
是的,我正在问如何重新构建lib并使msbuild使用/MT。我的程序没有DLL依赖项。 - rwallace
1个回答

4

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

 LLVM_USE_CRT_DEBUG=MTd
 LLVM_USE_CRT_RELEASE=MT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接