VS2015编译OpenCV+contrib大量报错

        最近需要做一个二维码识别小工具,使用了开源库QZXing和ZBar,单独的效果都各有优劣,识别率不尽人意,在网上查找发现微信扫码引擎加入了opencv可开源使用,就想尝试一下,但是wechat_qrcode包含在opencv_contrib中,因此,将opencv_contrib同opencv一起联合编译,关于联编的教程网上有很多,我就不献丑了,下面说一下几个注意事项(踩过的坑)。

Cmake过程中的坑

(1)opencv和contib必须是同一个版本的,不同版本会出问题。

        opencv源码:https://opencv.org/releases.html

        contib镜像:https://github.com/opencv/opencv_contrib

(2)第一次点configure会有配置弹窗,配置好之后就可以点configure,第一次configure完毕在下方日志窗口可能会有红色字体提示某某文件没下载成功,下载方法有两个:

        1.在刚刚自己建的build文件夹中找到CMakeDownloadLog.txt文件,打开,里面就有没下载成功的文件,以及这些文件可下载路径和其下载完后应该存放的位置,这些网址可能需要VPN才能访问,将CMakeDownloadLog.txt中标注的所有缺失文件一一下载,然后分别重命名并放到该放的位置去,具体可参考这篇博客:多图详细教程

        2.在configure最初选用一个合适的网,我最开始用的公司内网所以无法访问那些网址导致下载失败,后面删除了build文件夹内容重新CMake,但是这次是用的手机热点,用usb共享网络给电脑,或者有的话直接开下载也行吗,这样在configure的时候这些文件会自动下载,就是得多等一会儿,但是比自己一个个下载、改名、放到特定路径方便多了。

(3)自己单独新建一个文件夹用于存放Cmake后的内容(这里我新建的文件夹叫build),在 OPENCV_ EXTRA_MODULES PATH这一行粘贴contrib的路径,精确到modules文件夹,注意分隔符不能是"\",复制完目录后要统一改成"/"

VS2015编译OpenCV+contrib大量报错_第1张图片

VS编译报错

        CMake完毕(一直点configure知道上方红色部分全部变白,下方日志窗口没有红色字体报错,如果有的话就得具体情况具体分析了,一般有红字都是某文件没下载成功,这个见上一条的解决方法,configure结束后点generate生成一下VS工程文件)的效果是:

VS2015编译OpenCV+contrib大量报错_第2张图片

        然后就可以点open project  打开工程了,我用的是VS2015。

        打开加载完毕后生成ALL_BUILD项目(先配置好环境:64位或32位,以及需要的版本:release/debug)但是出现了大端报错,报错类型有:

        LNK118无法打开输入文件"..\..lib\Releaselopencv_world460.lib”

        错误C2131表达式口的计算结果不是常数

        error C2059:语法错误:“

        range_iterator hpp(34): error C2193;非法的间接寻址

        ······

        在网上找了很多方法,某些问题我通过单独修改源文件的部分解决了,但是一个个改显然治标不治本,应该是VS2015缺少什么配置导致了这么多错误,或者是编码方式的问题,使得读取有误(猜测)。最后找到一篇遇到同样问题的博客,惊醒自己应该是VS2015没有更新导致的,VS2015对于C++11的支持程度很低,很多东西不能正确识别,比如C++11新增的constexpr,我将该地方改为const就没出现过这个错误了,所以最后解决办法是下载VC2015更新包,更新一下后就可以编译成功了

VS2015编译OpenCV+contrib大量报错_第3张图片

         由于不知道是VS2015的问题,最开始一直以为是CMake有误,浪费了很久时间,尝试了多个版本,心死了。



        

你可能感兴趣的:(opencv,visual,studio,c++)