windows+qtcreator5+opencv3.4配置(成功且包含解释和各类错误)

实验室一项目的硬件(并联机器人)平台的相关运动控制基于windows的qt开发,现要添加视觉方案完成某些功能,想要集成在一个代码工程中,往qt中配置opencv环境免不了。起初以为如在vs中配置类似,简单将头文件、库文件相关目录添加即可,其实不然。

是这样的,在官网中选择不同版本的opencv文件安装,下载下来的是源码,即没有编译过的,意味着一个具有很多代码文件的工程并未编译、链接等产生可直接调用的二进制文件,所以它在一般地环境中是不可以直接使用的,必须使用编译工具将其编译。而为什么在VS中操作如此简单呢?微软与它有合作,下载下来的源码包含了可供VS环境配置的动态、静态链接库,VS这边的环境也支持,两者达成共识,操作自然简单。

我们在qt里面配置opencv就没有那么幸运了,简而言之,得先编译才能用。而编译,尤其在windows上,利用GNU编译工具编译的同时,还得有MinGW(Minimalist GNU For Windows)编译环境的支持,显得比较麻烦,但是现在工具其实在你使用qt进行编程,即安装qt时一般都安装好了,只不过我们不知道它在哪,那么,windows下的Cmake工具就提供了一个编译平台,在此编译平台上,选择待编译的源码目录、选择编译工具(在qt目录下)、设置成MinGW环境,最终获得Makefile文件,只有有了这个Makefile文件,在其目录下使用MinGW32_make命令,最终编译得到target.

https://blog.csdn.net/weixin_43763292/article/details/112975207

这位博主详细介绍了安装和编译过程,有了编译的思路,配置的时候至少多了些思考,有利于问题的解决。

补充的问题,在进行configue这一步时,并未提到这样的一个错误:

windows+qtcreator5+opencv3.4配置(成功且包含解释和各类错误)_第1张图片

如上面指出的错误详情见CmakeDownloadlog.txt,打开其中为:

#use_cache "E:/DiyProgram/cv/opencv/sources/.cache"
#match_hash_in_cmake_cache "OCV_DOWNLOAD_FFMPEG_HASH_3rdparty_ffmpeg_opencv_ffmpeg_dll"
#do_copy "opencv_ffmpeg_64.dll" "205db629d893e7d4865fd1459807ff47" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/2a96257b743695a47f8012aab1ffb995a1dee8b4/ffmpeg/opencv_ffmpeg_64.dll" "E:/DiyProgram/cv/build1/3rdparty/ffmpeg"
#check_md5 "E:/DiyProgram/cv/build1/3rdparty/ffmpeg/opencv_ffmpeg_64.dll"
#mismatch_md5 "E:/DiyProgram/cv/build1/3rdparty/ffmpeg/opencv_ffmpeg_64.dll" "15df55131471191b575668a424dff385"
#check_md5 "E:/DiyProgram/cv/opencv/sources/.cache/ffmpeg/205db629d893e7d4865fd1459807ff47-opencv_ffmpeg_64.dll"
#mismatch_md5 "E:/DiyProgram/cv/opencv/sources/.cache/ffmpeg/205db629d893e7d4865fd1459807ff47-opencv_ffmpeg_64.dll" "d41d8cd98f00b204e9800998ecf8427e"
#delete "E:/DiyProgram/cv/opencv/sources/.cache/ffmpeg/205db629d893e7d4865fd1459807ff47-opencv_ffmpeg_64.dll"
#cmake_download "E:/DiyProgram/cv/opencv/sources/.cache/ffmpeg/205db629d893e7d4865fd1459807ff47-opencv_ffmpeg_64.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/2a96257b743695a47f8012aab1ffb995a1dee8b4/ffmpeg/opencv_ffmpeg_64.dll"
#try 1
# timeout on name lookup is not supported
# getaddrinfo(3) failed for raw.githubusercontent.com:443
# Couldn't resolve host 'raw.githubusercontent.com'
# Closing connection 0
# 

#do_copy "ffmpeg_version.cmake" "3b90f67f4b429e77d3da36698cef700c" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/2a96257b743695a47f8012aab1ffb995a1dee8b4/ffmpeg/ffmpeg_version.cmake" "E:/DiyProgram/cv/build1/3rdparty/ffmpeg"
#check_md5 "E:/DiyProgram/cv/build1/3rdparty/ffmpeg/ffmpeg_version.cmake"
#match_md5 "E:/DiyProgram/cv/build1/3rdparty/ffmpeg/ffmpeg_version.cmake" "3b90f67f4b429e77d3da36698cef700c"

其中有个文件无法下载,全部要手动下载,我当时停留了太久,是我忽略了后面两个也要手动下载放在E:/DiyProgram/cv/build1/3rdparty/ffmpeg/这个目标目录下,这错误报告给的其实很清晰,要耐心读下去,它给出的三个网址依次对应缺失的文件,github上有一个代理网址,从里面输入就能下载,不要随便在网上找其他的,可能因为版本不同这些.dll可能无效,直接通过它给出的网址下载即可。

还犯过的一个低级错误,因为opencv3.4源码有一Bug,在使用mingw32-make进行编译时,会出现

你可能感兴趣的:(c++,qt,opencv,windows,7)