【问题标题】:Compiling Visual Studio 2010 project in VS 2012 (C++): error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700'在 VS 2012 (C++) 中编译 Visual Studio 2010 项目:错误 LNK2038:检测到“_MSC_VER”不匹配:值“1600”与值“1700”不匹配
【发布时间】:2013-06-24 15:16:22
【问题描述】:

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

【问题讨论】:

  • 如果你有 VS2012 的有效 RTM 许可证,那么你也有使用任何以前版本 VS 的许可证。因此,请尝试在此 VS2010 试用版中输入您的许可证号。自己从未尝试过。

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


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 2013-11-03
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 2018-05-05
  • 2018-04-19
  • 2016-06-24
相关资源
最近更新 更多