【C++学习笔记(三)】OpenCV4.1.0及OpenCV_contrib4.1.0,cmake编译到 VS2019;提示缺少boostdesc_bgm.i文件等问题的解决方法

本文章由公号【开发小鸽】发布!欢迎关注!!!


老规矩–妹妹镇楼:

一. 错误报告的原因:

       Opencv_contrib 需要自己编译,我们选用的是cmake进行编译
       在cmake中设置好路径,进行configure,标红了许多,提示有warning.这也是后面在VS 中install报错的原因,缺少相关的文件。cmake是直接从源码下载相关的文件到本地,当文件的地址无法访问时,相关的文件便没有下载到本地,而是生成了一个**.cache**文件夹。该文件夹如图所示:
在这里插入图片描述

二. 未下载的文件位置

       该文件夹中生成的都是未下载成功的文件,需要我们手动来下载。下载的地址在哪呢?这时我们就要查找cmake的日志了,该日志的地址在我们新编译存储的文件夹中,我设置的文件夹名称为Newbuild,日志的名字为CMakeDownloadLog.txt,如图所示:
在这里插入图片描述
       打开日志,截取一段看看

#cmake_download “D:/opencv/opencv346/sources/.cache/ffmpeg/41b81bb9a50cabd4bea385f7b50a069a-opencv_ffmpeg.dll”
“https://raw.githubusercontent.com/opencv/opencv_3rdparty/fe71c0ad807fdc33c2178e48e488f1e9b177c39a/ffmpeg/opencv_ffmpeg.dll”

       日志的意思是:cmake尝试下载opencv_ffmpeg.dll文件,md5fe71c0ad807fdc33c2178e48e488f1e9b177c39a,下载地址为https://raw.githubusercontent.com/opencv/opencv_3rdparty/fe71c0ad807fdc33c2178e48e488f1e9b177c39a/ffmpeg/opencv_ffmpeg.dll
       但下载失败,因此报错。所以我们手动下载该文件并将该
文件名改为md5-opencv_ffmpeg.dll
,并把该文件放到.cache/ffmpeg文件夹下。

三. 下载完所有文件后

       将所有未下载的文件用同样的方法下载好后,重新configure,配置路径,注意,这里需要勾选BUILD_opencv_world,以及OPENCV_ENABLE_NONFREE,然后generate,打开VS,根据自己的需要,设置好Debug,x64;或者是Release, x64后,点击生成->生成解决方案.经过漫长等待后,在解决方案资源管理器中,打开CmakeTragets,右击INSTALL,选择仅用于项目,仅生成INSTALL。
       打开新的VS项目,为项目添加包含目录,库目录,链接库,这都是老生常谈了,不再赘述。至此,如果没有出现错误的话,顺利结束你的编译之旅。
       Errrrrr…

怎么可能这么容易结束呢?你就没有报错吗?你这个可爱的孩子?
四. 可能出现的错误:

       1.在文件的下载过程中,有的文件是可以直接下载的,有的是直接打开了网页,如https://raw.githubusercontent.com/opencv/opencv_3rdparty/fe71c0ad807fdc33c2178e48e488f1e9b177c39a/ffmpeg/ffmpeg_version.cmake ,这时我们需要点击右键另存为txt文件,再修改后缀为cmake文件。
       2.文件的下载也有另外一种方式,直接到github的opencv_contrib页面进行下载,选择相应版本的opencv_contrib,下载相应的模块文件如ffmpeg等等
       3.LNK1104 无法打开文件“python37_d.lib”。说明你的Python在安装时没有安装Debug版本,那么重新修改Python的安装设置,将Debug版本添加进来。我的另一篇博客有介绍:Python37_d.lib

       4.最重要的BUG,如果编译OpenCV,那么你就要检查C盘的Windows文件夹下的syswow64和system32文件夹中是否含有opencv相关的dll,如果有,将他们全部删除,不然在运行程序时就会报错:无法定位程序输入点于动态链接库错误;

       历经许多磨难,最终程序运行成功!仅以此博客记录这漫长的过程!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值