msvc版本中的链接器不匹配。有什么解决办法吗? 我试图建立C++代码,它是与2010 开发的。
我可以编译它,但在链接过程中,我遇到以下错误:msvc版本中的链接器不匹配。有什么解决办法吗? 我试图建立C++代码,它是与2010 开发的。,c++,c,visual-studio,visual-studio-2012,C++,C,Visual Studio,Visual Studio 2012,我可以编译它,但在链接过程中,我遇到以下错误: 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并用它编译代码。微软似乎不喜欢你轻易地将一个项目从
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版本移植到另一个版本 解决此问题有三种解决方案:
- 在2012年重新编译VS2010库(但您需要源代码)。或者如果已经有可用的2012库(但我想你已经检查过了)
- 或者你可以: 在“项目属性”中,选择“常规”,然后将“平台工具集”设置更改为“Visual Studio 2010(v100)”
- 也可以将库链接为外部库
MSVC静态库在主要版本(至少是使用Microsoft STL实现的版本)之间是二进制不兼容的: C++标准库实现故意中断二进制文件 Visual Studio版本之间的兼容性(2005、2008、2010、, 2012). () 您可以:
- 使用相同的编译器重新编译外部库
- 将代码移动到与外部库使用相同的编译器
- 动态链接外部库(.dll)