天天看點

檢測到“_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。

VS2013   _MSC_VER = 1800

原因:由于你使用了vs2012,相比較vs2010以及之前的vs為更高版本,緻使msvc不相容!

方法:在項目右鍵屬性-配置屬性-正常中,平台工具集選用為合适平台即可,我這裡就選擇 vs2010 (v100).

1 _MSC_VER是微軟C/C++編譯器——cl.exe編譯代碼時預定義的一個宏。

需要針對cl編寫代碼時, 可以使用該宏進行條件編譯。

2 _MSC_VER的值表示cl的版本。

需要針對cl特定版本編寫代碼時, 也可以使用該宏進行條件編譯。

對應關系點此連結檢視。

3 _MSC_VER的類型是"int"

該宏被擴充後,得到的是整數字面值。