介绍
最近在用CMake编译OpenCV3.3,编译期间出现了很多问题,好在最终都解决了,所以写这篇博客记录一下编译过程中存在的问题,给其他人借鉴。
准备工作
Visiul Studio安装
我用的IDE是Visiul Studio2015
CMake下载
CMake是一种跨平台的编译工具,我们可以到官网进行下载https://cmake.org/download/,可以选择对应版本进行下载。
OpenCV下载
首先就是OpenCV源代码的下载,OpenCV托管于github,链接为https://github.com/opencv;
打开后会发现页面是有两个仓库,一个是主仓库,是存放主要代码的地方,还有一个是opencv_contrib,这里面放的是附加的代码,里面有一些很新的算法。如果想尝试最新的代码,就需要下载contrib的代码。
如:
点击下载,下载好后解压,我下载得是OpenCV3.3的版本,下载了contrib库。
编译
然后就可以进行编译了,打开cmake
第一行,点击Browse Source,选择OpenCV源码的目录,
第二行,点击Browse Build,选择OpenCV编译的生成目录,
点击Configure,然后会出此选择框,选择对应的VS版本,带win64的为64位版本,什么都不带的为32版本。
点击finish。
文件下载失败解决方法
然后就开始编译了,但在编译过程中会出现一些文件下载失败,应该是那个网站链接不稳定,导致时间超长,下载失败,如图:
这二就是IPPICV下载失败,其实在第一次便意的时候,opencv_ffmpeg.dll,opencv_ffmpeg_64,都会下载失败。
解决的办法是从opencv的github上下载相应的文件,替换掉下载失败的文件。
cmake在下载时,会将缓存文件保存在opencv源码中的.cache中,我们可以在https://github.com/opencv/opencv_3rdparty/branches/all中选择对应的下载失败的文件,然后将名称改为.cache中对应的文件名,替换掉就行,比如,
我们将下载的ipicv名称改成上图中对应的对应的文件的名称,替换点原来的文件。
带contrib库
在OPENCV_EXTER_MODULES_PATH后面选择opencv_contrib下的module目录,注意:路径应该为斜杠“/”,不是“\”,这个问题一会导致编译失败。
然后在第二次点击Configure,就会编译成功,
然后点击Generate,生成VS工程
VS工程生成
点击生成目录中的OpenCV.sln。
在VS下选择生成—批生成,
在选中这四个选项
点击生成,生成过程可能会比较长,大概,40多分钟,至此,源码编译成功。
生成出来的文件在生成目录下的install下,
如果想要在VS配置自己编译出来的库,配置时选择install目录下的相关目录就行了。
这是我第一次写博客,不足之处,恳请网友在下面留言指出来。