OpenCV-Cmake

版本opencv4.4 .0,windows下编译

1、下载源码和Cmake

(1)opencv4.4:https://github.com/opencv/opencv/releases

选择4.4版本的Sourcecode(zip)进行下载

(2)opencv_contrib:https://github.com/opencv/opencv_contrib/releases

选择4.4版本的Sourcecode(zip)进行下载

(3)Cmake:https://cmake.org/download/

下载并安装cmake-3.18.1-win64-x64.msi(文章编写时使用的版本为3.18.1)

2、生成并编译opencv

系统已经安装Visual Studio 2015,下载的opencv源码已解压。

(1)打开Cmake并选择opencv源码位置和生成路径。

(2)点击Configure进行参数配置。

image-20200811102554724
image-20200811102554724

(3)选择VS版本和需要生成的版本(Win32、x64),点击Finish。如果需要opencv-contrib则在OPENCV_EXTRA_MODULES_PATH中填入opencv-contrib/modylese的路径。另外如还需opencv的其他功能则勾选该功能模块。

image-20200811105423139
image-20200811105423139

(4)点击Generate生成文件。

(5)进入build文件夹打开生成的OpenCV.sln。

(6)找到Cmake Targets/INSTALL,右键生成。此过程时间较长

image-20200811103628268
image-20200811103628268

3、可能遇到的问题

(1)国内源码下载慢的问题。

解决方法:1.搭梯子。2.借助gitee。将opencv项目导入到gitee中然后下载对应版本的源码。

(2)Configure过程中文件下载超时,文件无法下载。

解决方法:打开build下CMakeDownloadLog.txt找到下载失败的文件手动下载,然后将下载的文件放到opencv源码的.cache对应的文件夹下,最后根据hash值修改文件名。

例如ippicv下文件下载错误,将文件放置到.cache/ippicv文件夹下并修改文件名为Hash+文件名。

在CMakeDownloadLog.txt中对应的文件为地址”https://raw.staticdn.net/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_win_intel64_20191018_general.zip

复制地址到浏览器打开并保存到本地,也可以借助迅雷等下载工具下载。在经过第一次configure后一般下载失败的文件会存在对应目录中,其大小为0kb,可直接将下载的文件重命名后替换对应的文件。

image-20200811104704758
image-20200811104704758

(3)生成opencv_world失败

LINK : fatal error LNK1210: 已超过内部 ILK 大小限制;链接时使用 /INCREMENTAL:NO

vs中选中opencv world项目 右键 属性->连接器->常规->启用增量链接:选择否(/INCREMENTAL:NO),重新编译。