天天看點

LNK2038: 檢測到“_MSC_VER”的不比對項: 值“1600”不比對值“1700”(main.obj 中)

在VS2012平台運作項目時遇到該問題,

LNK2038: 檢測到“_MSC_VER”的不比對項: 值“1600”不比對值“1700”(main.obj 中)

或者遇到這樣的提示

LNK2038: 檢測到“_MSC_VER”的不比對項: 值“1600”不比對值“1700”(main.obj 中)

_MSC_VER這個相當于做了宏的檢測  _MSC_VER 定義編譯器的版本。下面是一些編譯器版本的_MSC_VER值:

MS VC++ 14.0 _MSC_VER = 1900 vs2015

MS VC++ 12.0 _MSC_VER = 1800 vs2013的編譯器他的平台是v120

MS VC++ 11.0 _MSC_VER = 1700 vs2012的編譯器他的平台是v110

MS VC++ 10.0 _MSC_VER = 1600 Visual C++ 2010

MS VC++ 9.0 _MSC_VER = 1500 Visual C++ 2008

MS VC++ 8.0 _MSC_VER = 1400 Visual C++ 2005

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

error LNK2038: 檢測到“_MSC_VER”的不比對項: 值“1600”不比對值“1700”(main.obj 中)

原因:由于你使用了vs2012,工作集選擇了1700也就是vs2012的,緻使msvc不相容!

方法:在項目(解決方案資料總管或者屬性管理器裡都行)右鍵屬性-配置屬性-正常中,平台工具集選用為合适平台即可,比如上面的就是要選擇成2010的 v10版本,注意光選了還沒有用

注意一個工程裡面會有幾個解決方案的時候,有解決方案需要改而有的不要自己可以檢視

還需要重新編譯,重新編譯在生成菜單重新生成裡面

另外若使用了高版本的編譯工具,但是無法找到低版本的平台工具集,可以安裝下低版本軟體。

c++

繼續閱讀