• 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 '…libDebugopencv_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 '…libDebugopencv_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安装解压后的一样.....

    One day,I will say "I did it"
  • 相关阅读:
    我大学时代的好朋友要结婚了!
    (function(root,factory){})(this,function($){}) 一个立即执行的匿名函数自调
    非书面的非官方的常见的HTTP请求状态码分析
    一个页面多个HTTP请求 页面卡顿!
    requestAnimationFrame Web中写动画的另一种选择
    js 点击 返回顶部 动画
    css3动画 一行字鼠标触发 hover 从左到右颜色渐变
    var 和 let 的异同?
    H5案例分享:使用JS判断客户端、浏览器、操作系统类型
    基于浏览器的HTML5地理定位
  • 原文地址:https://www.cnblogs.com/Vince-Wu/p/11805075.html
Copyright © 2020-2023  润新知