在VS 2012(C ++)中编译Visual Studio 2010项目:错误LNK2038:检测到“_MSC_VER”不匹配:值“1600”与值“1700”不匹配

时间:2013-06-24 15:16:23

标签: visual-studio-2010 visual-c++ visual-studio-2012

我已经为新创建的SDK发送了一个示例应用程序,我无法编译它 - 由于ATL的原因,它根本无法在Visual Studio Express中编译,这似乎是唯一的版本微软仍然提供的VS 2010。所以我试图在VS 2012 Professional中编译它,但它给了我错误LNK2038。从我可以收集到的,例如从this thread开始,问题在于尝试在2012版本中使用为2010编译的.lib文件。因为我不是那个编译.lib的人,而我没有代码,而且VS 2010无法访问,所以我真的不知道该怎么办,除非原作者重新编译它。有什么建议?我缺少一些基本的东西?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

不能在不同版本的编译器中重用库文件。您需要执行以下操作之一:

  1. 使用与创建库文件相同的编译器版本编译项目。
  2. 从代码所有者处获取新的库文件,使用您现在使用的相同编译器进行编译。
  3. 获取库的源代码,并自行编译它们的新版本。
  4. 重写您拥有的代码,不依赖于您无法控制的库,因为您的构建环境不允许使用它们。