opencv3.1.0 + opencv_contrib用cmake编译时踩过的坑以及解决方法

环境介绍:

  • Windows10 x64位系统
  • opencv3.1.0
  • visual studio 2013
  • opencv_contrib3.1.0
  • cmake3.5.2

背景介绍:

我在配置过程中很辛酸,各种错误,还得一个一个百度,弄得心力交瘁,所以记录一下并总结问题及解决方法,希望后来者能借鉴(这里感谢一下各位前辈,为后来者铺好了路)。

话不多说,直接进入正题,具体的编译过程参考这位博主添加OpenCV_contrib库至OpenCV3.1.0中(Windows 64位 环境下编译OpenCV3.1.0和OpenCV_contrib)下面开始介绍我遇到的问题

 


 

问题1:

选好路径和vs版本后用cmake编译,结果没一会就报错如下:

Error in configuration process ,project files may be invalid
CMake Error at cmake/OpenCVUtils.cmake:895 (file):
file DOWNLOAD HASH mismatch

for file: [E:/Program Files/copy_opencv3.1.0/opencv/sources/3rdparty/ffmpeg/downloads/89c783eee1c47bfc733f08334ec2e31c/opencv_ffmpeg.dll]
expected hash: [89c783eee1c47bfc733f08334ec2e31c]
actual hash: [d41d8cd98f00b204e9800998ecf8427e]
status: [7;"Couldn't connect to server"]

Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:10 (ocv_download)
cmake/OpenCVFindLibsVideo.cmake:206 (include)
CMakeLists.txt:536 (include)


CMake Error at cmake/OpenCVUtils.cmake:899 (message):
Failed to download opencv_ffmpeg.dll. Status=7;"Couldn't connect to
server"
Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:10 (ocv_download)
cmake/OpenCVFindLibsVideo.cmake:206 (include)
CMakeLists.txt:536 (include)


Configuring incomplete, errors occurred!

See also "E:/Program Files/mybuild/CMakeFiles/CMakeOutput.log".

See also "E:/Program Files/mybuild/CMakeFiles/CMakeError.log".

原因是编译过程中需要下载的文件下载不成功,路径指向的服务器在国外,所以要翻墙才能下载,只能找下好的文件放入对应的位置,这里发放一下我下好的文件ffmpeg和ippicv文件打包

这里详细的可以参考这位博主:

解决opencv310 ffmpeg、ippicv_windows_20151201.zip无法下载问题

 

 



 

问题2:

之后加入opencv_contrib点击再次编译后再次报错

CMake Error at cmake/OpenCVModule.cmake:260 (foreach):
  Syntax error in cmake code at

    E:/Program Files/copy_opencv3.1.0/opencv/sources/cmake/OpenCVModule.cmake:260

  when parsing string

    E:/Program Files/copy_opencv3.1.0/opencv/sources/modules;EXTRA;E:\Program Files\opencv\opencv_contrib-3.1.0\modules

  Invalid escape sequence \P
Call Stack (most recent call first):
  modules/CMakeLists.txt:7 (ocv_glob_modules)


Configuring incomplete, errors occurred!
See also "E:/Program Files/mybuild/CMakeFiles/CMakeOutput.log".

这是因为我直接复制了window下的路径粘贴到了cmake中,而window下路径是以反斜杠分割的这里改成斜杠就行了,即把‘\’分割的改成以'/'分割,就像上面选择的源代码的路径和编译后的路径格式一样,改正之后就正常了,这里参考这位博主:

Invalid character escape '\O'. Call Stack (most recent call first): modules/CMakeLists.txt

 


问题3:

最后,选择new_build文件夹里的OpenCV.sln文件,并双击后在VS生成解决方案时又报错了(很无语。。。。。都快崩溃了):无法打开文件“opencv_bioinspired310d.lib”

这是因为cmake本身的问题,打开位于opencv_contrib-3.1.0\modules\bioinspired\src\opencl文件夹:
打开retina_kernel.cl,把注释的//*********改成别的或者删掉即可。

这里参考这位博主:OpenCV 3 - 编译更强大的OpenCV(二) - 拼人品时刻

 

 


 

问题4:

运行例程时又双叒叕报错了。。。。

这里我在库文件里面没找到这个lib,但是在opencv_contrib里面找到了,不知道为什么cmake没有编译生成这个,我的解决方法是直接在附加依赖项里将其删除,应该也用不上这个库:

之后就成功生成解决方案

最后的最后说一下,弄完了一定要重新配置环境变量和项目环境,就像第一次在vs里面配置opencv一样!

DONE!

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值