opencv 4.0.0 + VS2015 win10下 cmake

一、下载opencv对应安装包及扩展包

(1)opencv安装包下载

Opencv_contribute GitHub 下载点击opencv_contrib进入后搜索下载所需要的版本

 

 

因国内镜像原因,下载速度会较慢,且容易断掉,这里提供4.0.0版本的网盘下载地址:

链接: https://pan.baidu.com/s/16olmX0csQRdlBhEotqn_tA 提取码: ev2y 

(2)下载解压后的文件夹如下:

其中:

opencv是.exe安装解压后的文件夹,opencv_contrib-4.0.0是从github下载的扩展包,

opencv-4.0.0_build_x64是用于后面cmake存放编译文件的自定义文件夹。

二、cmake下载

官网下载:https://cmake.org/download/

安装时选择对应平台即可,我是选择win64 x64.

三、cmake

(1)configure

1、2 步后点开configure

 设置完点击Finish

configure后出现如下红色字体警告的解决方法:

1.是否断网,若为断网,重新连接后再次configure;
2.因国内网络原因无法自动下载,则进行手动下载:

 1)打开编译输出的文件夹,找到打开CMakeDownloadLog.txt

部分信息如下:

 1 #use_cache "F:/opencv400/opencv/sources/.cache"
 2 #do_copy "opencv_ffmpeg.dll" "849286ccc527c99e5a218b67f13c6e8c" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll" "F:/opencv4.0.0/opencv-4.0.0_build_x64/3rdparty/ffmpeg"
 3 #missing "F:/opencv4.0.0/opencv-4.0.0_build_x64/3rdparty/ffmpeg/opencv_ffmpeg.dll"
 4 #check_md5 "F:/opencv400/opencv/sources/.cache/ffmpeg/849286ccc527c99e5a218b67f13c6e8c-opencv_ffmpeg.dll"
 5 #mismatch_md5 "F:/opencv400/opencv/sources/.cache/ffmpeg/849286ccc527c99e5a218b67f13c6e8c-opencv_ffmpeg.dll" "d41d8cd98f00b204e9800998ecf8427e"
 6 #delete "F:/opencv400/opencv/sources/.cache/ffmpeg/849286ccc527c99e5a218b67f13c6e8c-opencv_ffmpeg.dll"
 7 #cmake_download "F:/opencv400/opencv/sources/.cache/ffmpeg/849286ccc527c99e5a218b67f13c6e8c-opencv_ffmpeg.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll"
 8 # timeout on name lookup is not supported
 9 #   Trying 173.252.110.21:443...
10 # TCP_NODELAY set
11 # connect to 173.252.110.21 port 443 failed: Timed out
12 # Failed to connect to raw.githubusercontent.com port 443: Timed out
13 # Closing connection 0
14 # 

大致意思,就是无法从:"F:/opencv400/opencv/sources/.cache"复制  签名为"849286ccc527c99e5a218b67f13c6e8c"、下载地址为

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll"的

"opencv_ffmpeg.dll"到"F:/opencv4.0.0/opencv-4.0.0_build_x64/3rdparty/ffmpeg/opencv_ffmpeg.dll"

因此,我们直接从下载地址下载"opencv_ffmpeg.dll"更改名字为"签名-opencv_ffmpeg.dll"(-opencv_ffmpeg.dll只是对照所贴文本举例子,具体需对照txt内容更改)至"F:/opencv400/opencv/sources/.cache"

或者不更改名字直接存放到"F:/opencv4.0.0/opencv-4.0.0_build_x64/3rdparty/ffmpeg/"。

其他缺失文件照以上步骤进行替换。

注意:打开下载.cmake时不是直接下载文件,而是网页显示,此时右键另存为即可:

 2)如果有其他缺失的文件,如安装包,对照CMakeDownloadLog.txt下载改名存放至对应文件夹即可,下载完后重新configure,configure done后不会出现之前的警告项。

 3)勾选OPENCV_ENABLE_NONFREE,并选择路径至我们扩展包下的modules文件夹

4)后续只生成一个opencv_world400.dll文件时则需勾选以下选项

 

再次点击Configure后如果还是会有文件缺少的情况,照上面步骤手动下载。下载完后继续Configure直至提示框没有警告(PS:太艰辛了)。

(2)如果configure后信息输出窗口没有红色警告,点击Generate,Generate done 后 Open Project,会自动VS打开解决方案 Opencv.sln

四、VS编译生成Opencv库文件

1、选择模式及对应平台后生成解决方案;

 

 问题及解决(未出现可直接进入第2步):出现LNK1104.... cannot open file '…\lib\Debug\opencv_world40d.lib’的问题,网上查了一下说是win10 SDK版本低的问题,所以就先下载安装一个较最新的SDK,

划重点:VS2015 对应的win10 SDK不要超过14393,看这里:https://blog.csdn.net/Namcodream521/article/details/78493921,(PS:这会我已经装了18362...)

win10 SDK下载地址:https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk,(PS:划重点)这个时候需要把旧的SDK版本卸载,然后重新Configure、Generate、Open Project。

这时在cmake里面会提示win10 SDK版本,如果没卸载旧的SDK,它还是会使用旧的make(PS:一把鼻涕一把泪啊...)...

 Open Project后进入VS需先设置win 10 SDK,不能直接生成(PS:又有一个坑...),设置过程如下图:

 确定后生成解决方案(PS:还是会有错误提示,2333....),同样是LNK1104.... cannot open file '…\lib\Debug\opencv_world400d.lib’这个错误,重新定位一下,lib没生成,那就先单独生成opencv_world400d.lib,

找到opencv_world,右键仅生成该项目,出现rc.exe未启动(PS:定位到了问题,仿佛看到了希望)

按网上所说,将rc.exe的路径添加至系统变量,重启VS...

 

 继续单独生成opencv_world400.lib...还是不行(PS:崩溃)

 这个时候,试着把windows目标平台 切换为8.1,神奇般的可以正常生成了.所以我一开始不能生成的原因可能不是因为我的win10 sdk太低,而是太高,导致不支持VS2015...出现rc.exe无法启动的各种情况.

 

 

 2、仅生成INSTALL

 

 

 五、编译完成

此时该目录下的文件及文件夹就跟从官网下载.exe安装解压后的一样.....

 

posted @ 2019-11-06 17:28  鸡鸣昧旦  阅读(1290)  评论(3编辑  收藏  举报