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。
原文:http://www.cnblogs.com/hustdc/p/6619141.html