win10系统在vscode下配置opencv失败记录

win10系统在vscode下配置opencv失败记录

前言

本周开始学习opencv,首先要有一个编译环境,笔者选择轻量型选手vscode作为编辑器,MinGW作为编译器,在cmake加持下尝试完成编译环境,但最终以失败告终,在本篇文章中简单记录一下遇到的问题及解决办法,以及无法解决的问题。

各软件版本

vscode:官网下载的最新版本
opencv:4.5.0
MinGW:采用最新版下载器下载完成
cmake:3.18.2

各软件安装过程

vscode

vscode直接去官网,应该有手就行吧

opencv

opencv的安装也是去的官网,在release中,选择之后下载的,如图红色框所示:
在这里插入图片描述
点进去之后,选择红色框框下载:
在这里插入图片描述
下载完成后,是个这个文件:
在这里插入图片描述
双击安装即可。

MinGW

MinGW安装我采用的是利用下载器下载,虽然之前为vscode配置cpp编译环境装过一个,但是担心有什么问题,就采用了官方的下载器来搞。
具体的安装方法是按照这篇博文来的,讲的非常详细:

https://blog.csdn.net/wxh0000mm/article/details/100666329

这里可能需要比较好的网络环境才可以下载。

CMake

CMake是去官网下载的,在这里:

https://cmake.org/download/

进去之后,找到红框位置下载:
在这里插入图片描述

踩过的坑

这一路上主要是两个地方把我难住了,大部分还算和谐,下面介绍我遇到的坑。

CMake生成配置文件报错

概括一下,可以称为Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件
在用CMake生成编译文件时,我只是机械的完成了两次configure和一次generate,没有注意到还有报错!!!
报错时,CMake-gui会出现一段红色的文字,我以为那是正常现象,然鹅并不是,报错信息大概张这样:
在这里插入图片描述
解决方法参考这片文章:

https://www.jianshu.com/p/52de9de70891

这是一位资深大佬的文章,而且人很好,帮我解决了很多问题。
另外说明一下文章中提到的一些细节:
在这里插入图片描述
这里提到的下载正确版本,我是直接下载的最新的一个,发现好使,就直接用的。判断是不是正确版本需要看MD5号码是否匹配。
另外下载时要下载整个压缩包,有的不能从GitHub中直接下载最终文件,下载压缩包后解压出来需要的文件即可。
替换掉文件后,回去重新configure就没有红字报错了,很厉害的一篇文章!

MinGW32-make时报错

鉴于本人也不太清楚这些步骤具体是做什么,贴出步骤图,就是在执行红色框框时,出现了非常可怕的错误,就是怎么也无法通过:
在这里插入图片描述
我的报错信息是这样的:

3rdparty\openexr\CMakeFiles\IlmImf.dir\build.make:137: recipe for target ‘3rdparty/openexr/CMakeFiles/IlmImf.dir/IlmImf/ImfAttribute.cpp.obj’ failed
mingw32-make[2]: *** [3rdparty/openexr/CMakeFiles/IlmImf.dir/IlmImf/ImfAttribute.cpp.obj] Error 1
CMakeFiles\Makefile2:1791: recipe for target ‘3rdparty/openexr/CMakeFiles/IlmImf.dir/all’ failed
mingw32-make[1]: *** [3rdparty/openexr/CMakeFiles/IlmImf.dir/all] Error 2
Makefile:180: recipe for target ‘all’ failed
mingw32-make: *** [all] Error 2
在这里插入图片描述

这个问题实际上还没有解决,但我尝试了一下用以下命令编译(来自上文说的博主的指点)

cd /d “D:\Program Files\OpenCV\opencv\build\x64\MinGW\3rdparty\openexr” && C:\MinGW\bin\g++.exe -I “D:\Program Files\OpenCV\opencv\sources\3rdparty\openexr\IlmImf” -c “D:\Program Files\OpenCV\opencv\sources\3rdparty\openexr\IlmImf\ImfAttribute.cpp” -o CMakeFiles\IlmImf.dir\IlmImf\ImfAttribute.cpp.obj

效果是缺少某某文件:
在这里插入图片描述
之后我采用-I "绝对地址"的方法,忽略缺少的某某文件,大概效果如下:
在这里插入图片描述
层层递归式缺少文件,直到最后一层,报了一堆错误,宣告该方法失败:
在这里插入图片描述
简单说明一下指令的使用要求,要放在最初始指令中-c前边,这里I是i的大写,文件的绝对路径要找.h文件的绝对路径,并且不能包含文件本身,举个例子:
在这里插入图片描述
这个half.h的绝对路径就是上边路径栏的东西,具体如下:

D:\Program Files\OpenCV\opencv\sources\3rdparty\openexr\Half

同时,我的绝对路径中包含了空格,所以要对绝对路径加上双引号,如果没有空格可能不需要加吧,这个我没有尝试。
最后决定,重新用其他版本的OpenCV和CMake重新尝试,现在还没尝试,尝试之后会来更新的。

特别鸣谢

非常感谢上文提到的博主:北冥有鱼wyh
在配置过程中帮我了很多忙,而且非常耐心的指导我这个小白,在此表示由衷的感谢!!!

如果大家有什么指点或者想要了解的细节,非常欢迎私信我,大家一起学习,共同进步!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41883714/article/details/109690494
今日推荐