vs2015下搭建opencv2.4.x
vs2015安装opencv2.4.x,因为2.4.x最高支持到vc12的库文件,vs2015是使用的vc14,所以,必须加载vc12的两个dll(msvcp120d.dll和msvcp120.dll)方可识别opencv的dll库文件。 不然就会报奇怪的错误,有时候F5调试竟然是如下错误:
而且死活调试运行不过。
后台把msvcp120d.dll和msvcp120.dll这两个文件放到环境变量下,就是vc12的bin下面,终于调试通过了。
感觉好坑,浪费了一下午发现这个问题,至于以下方法,其实并不解决问题以上的报错问题。
附录:vs2015安装opencv的通用办法:
1.下载并运行opencv2.4.11。指定路径提取出opencv文件
2.设置环境变量
【(右键)计算机】->【属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量中的PATH->在变量值里面添加相应的路径。如图:
我设置的环境变量是D:\opencv\opencv\build\x86\vc12\bin
根据实际情况,build文件夹后两级的路径选取是不同的。
对于是x86还是x64?
如果你最终选择的是64位编译,那么路径选择x64,
例如:D:\opencv\opencv\build\x64\vc12\bin
如果你最终选择的是32位编译,那么路径选择x86。
这里需要注意的是,使用多少位编译指的是VS中的这里
而不是你的电脑操作系统是64位还是32位。
后面再选择x86还是x64时,也是同样的道理!!!
对于是vc10?vc11?vc12?
这里给出一个对应
vs2010=vc10
vs2012=vc11
vs2013=vc12
vs2015目前也选择vc12,后续可能opencv会更新
配置完环境变量后,建议注销电脑。Win10电脑按alt+F4
3.包含目录的配置
首先新建或者随便打开想要使用opencv的项目
点击【视图】->打开【属性管理器】
如果没有属性管理器,在【其他窗口】中查找
根据自己选择的编译方法,例如我选择Debug和x86,在【属性管理器】中点击对应的属性页,如下图:
在包含目录中添加:
D:\opencv\opencv\build\include\opencv2
D:\opencv\opencv\build\include\opencv
D:\opencv\opencv\build\include
这种方法配置的是通用属性,一次配置,一直使用
4.库目录的配置
在包含目录的下方,编辑库目录,添加:
D:\opencv\opencv\build\x86\vc12\lib
x86和vc12的选择原因同2
5.链接库的配置
对于链接库的配置,有的博客建议不要配置成通用属性,而是每个项目配一次,虽然有些麻烦,但是能避免opencv报出奇奇怪怪不好处理的错误。这里就给出每次使用单独配置的方法:
右键选择当前项目->属性
会出现与先前通用属性页一样的属性页,只不过你做的操作只针对当前项目。
进行如下图操作添加附加依赖项:
注意到,我们添加的附加依赖项文件名都是d结尾的,带d的lib文件对应Debug,不带d的文件对应Release。
所以,对于选择Debug编译时,添加:
opencv_ml2411d.lib
opencv_calib3d2411d.lib
opencv_contrib2411d.lib
opencv_core2411d.lib
opencv_features2d2411d.lib
opencv_flann2411d.lib
opencv_gpu2411d.lib
opencv_highgui2411d.lib
opencv_imgproc2411d.lib
opencv_legacy2411d.lib
opencv_objdetect2411d.lib
opencv_ts2411d.lib
opencv_video2411d.lib
opencv_nonfree2411d.lib
opencv_ocl2411d.lib
opencv_photo2411d.lib
opencv_stitching2411d.lib
opencv_superres2411d.lib
opencv_videostab2411d.lib
对于选择Release编译时,添加:
opencv_objdetect2411.lib
opencv_ts2411.lib
opencv_video2411.lib
opencv_nonfree2411.lib
opencv_ocl2411.lib
opencv_photo2411.lib
opencv_stitching2411.lib
opencv_superres2411.lib
opencv_videostab2411.lib
opencv_calib3d2411.lib
opencv_contrib2411.lib
opencv_core2411.lib
opencv_features2d2411.lib
opencv_flann2411.lib
opencv_gpu2411.lib
opencv_highgui2411.lib
opencv_imgproc2411.lib
opencv_legacy2411.lib
opencv_ml2411.lib
6.VS2015带来的问题
使用VS2015会导致编译运行时报错:“缺少msvcp120d.dll”
解决方法是需要下载两个dll,
在一个博客里找到的地址http://pan.baidu.com/s/1hqF8nlU
解压后将两个dll拷到你配置环境变量的地址对应的那个文件夹
例如我的是:D:\opencv\opencv\build\x86\vc12\bin
如果不是这个错误,说明配置的错误和使用vs2015无关,亲测~
到此如果你配置无误,opencv应该已经配置成功了