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)

将平台设置为2010后,出现以下错误:错误1错误MSB8020:找不到Visual Studio 2010的生成工具(平台工具集='v100')。要使用v100构建工具进行构建,请单击项目菜单或右键单击解决方案,然后选择“更新VC++项目…”。使用Visual Studio 2010生成工具安装Visual Studio 2010以生成。我需要安装什么?MSVC 2010的完整版本,或者是否有只安装2010构建系统的文件?实际上,我的计算机上有它。。。我不知道是否有避免安装VS2010的解决方法…您找到了这样做的方法吗?