1 關於vs的版本
visual studio是一個集成開發環境,而vc++是一個c++的compiler,vc++有一個版本和一個版本號,vs也有一個版本,它們的對應關系如下:
MSVC++ 4.x _MSC_VER == 1000 MSVC++ 5.0 _MSC_VER == 1100 MSVC++ 6.0 _MSC_VER == 1200 MSVC++ 7.0 _MSC_VER == 1300 MSVC++ 7.1 _MSC_VER == 1310 (Visual Studio 2003) MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005) MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008) MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010) MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012) MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013) MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015) MSVC++ 14.1 _MSC_VER == 1910 (Visual Studio 2017)
也就是說,vs2013使用的是MSVC++ 12.0的c++編譯器,該c++編譯器的版本號是1800。
2 opencv的x64庫版本
在配置opencv的時候,如果編譯器是MSVC,那么按照下面的方式來存放OpenCV_RUNTIME,即opencv的動態庫和靜態庫。
if(MSVC)
if(CMAKE_CL_64)
set(OpenCV_ARCH x64)
set(OpenCV_TBB_ARCH intel64)
else()
set(OpenCV_ARCH x86)
set(OpenCV_TBB_ARCH ia32)
endif()
if(MSVC_VERSION EQUAL 1400)
set(OpenCV_RUNTIME vc8)
elseif(MSVC_VERSION EQUAL 1500)
set(OpenCV_RUNTIME vc9)
elseif(MSVC_VERSION EQUAL 1600)
set(OpenCV_RUNTIME vc10)
elseif(MSVC_VERSION EQUAL 1700)
set(OpenCV_RUNTIME vc11)
elseif(MSVC_VERSION EQUAL 1800)
set(OpenCV_RUNTIME vc12)
elseif(MSVC_VERSION EQUAL 1900)
set(OpenCV_RUNTIME vc14)
endif()
這里的MSVC_VERSION即上表中的_MSC_VER,當1800是,是vc12,msvc++ 12.0版本的編譯器,即visual studio 2013,這樣看來,
vc12是msvc++編譯器的版本,而該編譯器版本對應的vs是2013。