Vscode C++版opencv编译配置报错记录

说明: 由于本文章重点在于解决本人opencv编译时遇到的一些问题,所以不给出详细的配置过程。详细可参考下面下方链接。希望这些错误也能帮助其他人快速解决问题。

VScode搭建Opencv(C++开发环境)_vscode opencv-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_45022687/article/details/120241068需要特别说明的时是,要注意cmake版本与opencv版本,最好与本人这次配置的相同,否则可能遇到不一样的错误。

配置版本说明:

1、Mingw编译器:选择最新的即可

2、cmake版本 3.21.3

3、opencv版本 4.5.5

1、问题一 

使用cmake-gui进行configure时,提醒如下图所示的warning显示ffmpeg无法下载(不会阻断cmake进程),这是因为我们的网络无法去访问对应的网址,这里不是科学上网的问题(我用科学上网工具也会报错)。之后我们可以到cmakeDownloadlog.txt中去寻找ffmpeg的下载链接,进行手动下载。

打开对应位置的的CmakeDownloading.txt,如下图所示。

上面的日志文件中记录了下载对应文件的链接,例如 8862c87496e2e8c375965e1277dee1c7-fmpeg version.cmake文件,对应的下载链接为后面的https:/tawgithubusercontent.com/ops3rdparty/4d348507d156ec797a88a887cfa7f9129a35afac/ffmpeg/ffmpeg version.cmake(注意这个网址是无法直接访问的,需要使用github加速),加速方法为:在网址前加:https://ghproxy.com/,最终为https://ghproxy.com/https:/tawgithubusercontent.com/ops3rdparty/4d348507d156ec797a88a887cfa7f9129a35afac/ffmpeg/ffmpeg version.cmake,这样就可以下载文件,之后分别将下载好的三个文件替换C:\opencv\sources\.cache\ffmpeg中的三个文件,并重新命名为MD5码+文件名。MD5在CmakeDownLog.txt中有记录,

比如ffmpeg_version.cmake 的MD5码为8862c87496e2e8c375965e1277dee1c7,

则需要重新命名为:8862c87496e2e8c375965e1277dee1c7-fmpeg version.cmake

2、问题二

在使用mingw32-make -j 8 进行编译之后,报如下错误

这里是因为uintptr_t数据类型不存在,这是因为在C:/opencv/build/x64/minGW/3rdparty/ade/ade-0.1.1f/sources/ade/include/ade/typed_graph.hpp中缺少头文件(C:/opencv/build/x64/minGW是我自己创建的,在cmake-gui中的build路径),加上头文件#include <cstdint>即可解决。

3、问题三

也发生在mingw32-make -j 8 之后,报错如下所示。

通过阅读错误可以发现,find_if_not函数的第三个参数被判断为 <unresolved overloaded function type>,即判断为未解析重载的重载函数类型,编译器无法判断他用的是哪一个,编译器列出了isspace的重载版本所在的目录(图中的In file included from: ***),解决方法就是指定isspace为algorithm对应的版本,确定C:\opencv\sources\modules\gapi\src\api\gcomputation.cpp中包含了#include <algorithm>的头文件,之后在find_if_not的isspace参数前加入全局作用域,代表它使用的是algorithm中的isspace,即::isspace即可解决问题

解决了如上几个错误,再次mingw32-make -j 8就成功了!!!之后进行install即可。

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值