error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1700”

发布于 2020-05-05  49 次阅读


问题描述:

在用VS2012编译时出现下面的错误

error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1700”

error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1800”


问题分析:

_MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值:

MS VC++ 10.0 _MSC_VER = 1600

MS VC++ 9.0 _MSC_VER = 1500

MS VC++ 8.0 _MSC_VER = 1400

MS VC++ 7.1 _MSC_VER = 1310

MS VC++ 7.0 _MSC_VER = 1300

MS VC++ 6.0 _MSC_VER = 1200

MS VC++ 5.0 _MSC_VER = 1100

其中MS VC++ 10.0就是Visual C++ 2010,MS VC++ 9.0就是Visual C++ 2008,MS VC++ 8.0就是Visual C++ 2005。

由于你使用了vs2012,相比较vs2010以及之前的vs为更高版本,致使msvc不兼容!


解决方法:

在项目右键属性-配置属性-常规中,平台工具集选用为合适平台即可,我这里就选择 vs2010 (v100).


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。