我正在尝试构建VS 2010开发的c ++代码
我可以编译它,但在链接期间,我收到此错误:
Error 1 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in myfile.obj
我知道这是因为它们是使用不同版本的MSVC构建的,但有没有办法可以将MSVC配置为使用使用旧版MSVC编译的库?
修改1
最后,我决定安装VS2012 express并用它编译代码。似乎微软不喜欢你将一个项目从一个版本的MSVC轻松移植到另一个版本。
答案 0 :(得分:1)
您有三种解决方案可以解决此问题:
在“项目属性”中,选择“常规”,然后将“平台工具集”设置更改为“Visual Studio 2010(v100)”。
答案 1 :(得分:1)
MSVC静态库在主要版本之间是二进制不兼容的(至少那些使用Microsoft的STL实现的那些):
C ++标准库实现故意破坏二进制文件 Visual Studio版本之间的兼容性(2005年,2008年,2010年, 2012)。 (source)
你可以: