Qt5.8 mingw 配置opencv3.2

Qt5.8 mingw 配置opencv3.2

首先,本博主也是辛辛苦苦通过一步一步的学习,最后才修炼得到此宝典,与各位分享共同学习。

好了,废话不多说,你必须耐心的跟着我的步骤来,不然你极有可能会失败。哈哈哈

写在最前面
为什么我们需要编译这个mingw版本的opencv库?
答:我们在opencv官方一开始的时候下载的opencv文件,解压后里面有两个文件夹,一个是build,一个是source,问题就来了,build这个文件夹实际上是官方已经提前给我们编译好了的库,但是,这必须得有一个前提,就是你必须使用的是msvc编译器,而我们使用的是mingw编译器,所以,你想想,不同的编译器,肯定库文件不一样,就不能使用,对吧?所以,就有了下文为mingw编译器编译opencv的库。

最后,有人想问,那为啥不使用msvc,干嘛这么大费周章用mingw,实际上我们用mingw这个编译器的最重要的目的是最后能够跨平台,能够在linux、arm等平台使用,这些平台使用的编译器都是g++、gcc,所以,你懂的。

第一步:准备工具
1、需要用到的工具是cmake,我的cmake版本是3.4.3;
2、当然就是opencv的源代码了,网址在这里opencv下载地址我使用的是3.2版本,其他版本可能不会成功,但是方法是一样的
3、接下来就是下载qt5.8 mingw版本的 注意,如果你下载的是msvc版本的,你可以关闭这个页面了,因为对你的帮助没有什么用Qt下载地址

第二步:安装软件
1、这步是最傻瓜的,请把刚刚下载的cmake和qt都安装好,就可以了。

注意:安装qt的时候 请全部安装,以免后面出错。

第三步:配置系统环境变量:

注意:本博客的系统是win10 pro。可能与你的系统稍有不同,但是都是一样的,请自己百度不一样的地方,或者google。

1、首先配置g++、gcc编译环境:因为我们的qt使用的mingw编译器,自带gcc和g++,所以,配置系统的gcc和g++如图所示:

系统配置

备注:刚刚那个图不清晰,请按照我下面的红色框框里面对应的配置去配置你自己的环境变量。

这里写图片描述

啰嗦一句,还要把你的cmake的bin目录同样的配置到系统变量里面去。

以上的路径都是在软件的安装路径下可寻得。

然后就是重点了,收藏此帖子后,请关机,请关机,请关机

第四步:开始使用cmake配置工程文件
1、如果你按照我说的,收藏此网页后并重新启动了电脑,请继续,否则,后续的所有操作都极有可能会失败,
2、首先打开你的cmake工具,然后在source code 和 build the binaries中分别填写你的opencv源代码目录和生成opencv库的目录,如图所示:
目录配置

注意,这个时候系统会提示你是否创建该目录(如果这个目录没有,建议你把源代码和生成后的文件目录这个时候都设置到桌面,方便后续操作),直接ok就可以了。

3、然后点击左下角的configure按钮,按照如图所示的设置:
这里写图片描述

4、点击next后,会让你设置gcc和g++编译器的路径,这个时候,请参考我给的如下图,对照自己的qt安装下去设置。
设置编译器路径

下面给出我的qt安装位置下的编译器路径,请参考我的,设置自己的。如果你的安装路径命名这些都和我一样,直接就复制进去就可以了。
F:/SoftWareCatelogy/QtAndriod5.8/Tools/mingw530_32/bin/gcc.exe

F:/SoftWareCatelogy/QtAndriod5.8/Tools/mingw530_32/bin/g++.exe

最后:请不要在设置目录的时候,包含有c++命名的文件目录,否则会出错。切记。

5、点击finish后这个时候系统会自动的更具cmakeList文件开始读取 配置文件,你不管,读取完后,你会发现,全是红色的,请把WITH_IPP取消勾选,请勾选WITH_OPENGL和WITH_QT
然后再次点击configure,还是有红色的,然后在点击一次configure 就全部都是白色的了。

注意,在5这个过程中,你肯定会遇到系统提示在下载ffmpeg、ippicv这两个文件,但是我已经帮你下载好了,请到这里自己下载ffmpeg

然后你还需要下载ippicv这个文件,本来我不想要收取你们的积分的 这个csdn最少都是2积分,我很无语,还限制了110mb的大小。所以,我把ippicv分开上传,因为大小超过了110,如果要下载,请把下载后的两个文件夹ippicv1、ippicv2里面所有的文件放在一个文件夹里面,且重新对新的文件夹命名为ippicv。链接如下:
ippicv1
ippicv2
如果你不想下载,你可以到github下载,或者直接下载我最后编译好了的库文件

6、关闭cmake,然后把刚刚下载的ffmpeg和ippicv这两个文件,放在opencv的source目录下的3rdparty(第三方库目录)目录下,直接全部复制替换掉就可以了。请注意命名,不要自己想当然的写。

7、最后重新打开cmake工具,点击configure,如果还是有错,请把生成目录删除(不是删除源代码,是删除生成源代码库的目录),重新按照刚刚cmake配置步骤,就可以了(讲道理是点击3次configure,一次genarate)。配置好后,即可关闭cmake工具。

第五步:make和install
1、如果你按照我的步骤,一直没有出错,那么,恭喜你,你成功的概率已经到了99%了。请继续按照下面步骤来。

2、进入到你的source源文件目录里面,里面有一个cmake文件夹,进去然后找到这个文件OpenCVCompilerOptions.cmake,把这一句话注释掉:add_extra_compiler_option(-Werror=non-virtual-dtor) 直接文本打开,搜索,然后在前面加上#即可。

3、如果你一开始听我的话,把库文件的生成目录设置在桌面的话,你就很舒服了。
1)、win+r,然后输入cmd,进入到你build的文件夹目录下。
2)cd 是切换目录 dir是显示当前位置文件

4、进入cmake生成的库文件目录后,使用这条命令开始make:
mingw32-make
等待20分钟
然后完成了,在输入这条命令mingw32-make install

然后就没有然后了 到此就大功告成了。

第六步:qt中配置opencv
1、新建一个qt工程,然后在pro 工程中添加如下配置:

INCLUDEPATH += XXX\install\include
INCLUDEPATH += XXX\install\include\opencv
INCLUDEPATH += XXX\install\include\opencv2\

LIBS += XXX\install\x86\mingw\lib\libopencv_*.a

注意:XXX代表的是你的库文件目录,把XXX替换为你的库目录即可。

最后附上我的工程配置如图所示:
工程配置

库文件下载:哇 太大了 1.8g 需要的请联系我QQ:543985125,我单独发给你吧。这个简直没法了。

最后,如果不出问题的话,你把你的代码写好了,编译没有问题,但是测试的时候会提示程序异常结束,这个时候请参考我的这篇博客。解决办法

写在最后,2018/12/5添加此内容。
将opencv以库的形式进行封装配置注意。
经过上面的配置后,再后来的功能中,我把opencv实现的功能进行以Qt库的形式进行封装,结果,我的天,各种报错,说找不到头文件,然后又说编译有问题:cvstd.hpp:664: error: undefined reference to `cv::String::deallocate()’ , 搞我啊,最后想来想去,找来找去,都不知道咋办。结果,皇天不负有心人。如果要把opencv以库的形式封装,最外层的调用主程序也需要进行opencv的环境配置,包括库文件的链接,我的天,试了很多次后才发现这样才可以,醉了,切记。

谢谢大家,最后,欢迎大家共同讨论。

Qt是一个跨平台的C++应用程序开发框架,而Qt 5.15是最新版本。Mingw32是一个带有gcc编译器的开发工具包,用于在Windows平台上编写和编译C++程序。OpenCV是一个开源的计算机视觉库,用于处理图像和视频等多媒体数据。 如果您想在Qt 5.15中使用Mingw32和OpenCV 4.5.5,首先需要确保正确安装了Qt 5.15和Mingw32开发工具包。您可以从官方网站下载并安装这些软件。 安装完成后,您需要在Qt Creator中设置编译器选项。在“工具”->“选项”->“编译和运行”->“编译工具链”中,添加您安装的Mingw32编译器。然后,在“项目”->“构建环境”中,选择使用该编译器。 接下来,您需要在Qt项目中包含OpenCV库。将OpenCV头文件和库文件拷贝到您的项目文件夹中,然后在.pro文件中添加以下代码: ```cpp INCLUDEPATH += path/to/opencv/include LIBS += -Lpath/to/opencv/lib -lopencv_core -lopencv_imgproc -lopencv_highgui ``` 注意将上述代码中的"path/to/opencv"替换为您实际的OpenCV安装路径。 完成以上步骤后,您可以在Qt项目中包含OpenCV头文件并调用OpenCV函数进行图像处理等操作。例如,您可以使用以下代码读取和显示图像: ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char *argv[]) { Mat image = imread("path/to/your/image.jpg"); imshow("Image", image); waitKey(); return 0; } ``` 以上是在Qt 5.15中使用Mingw32和OpenCV 4.5.5的基本步骤和示例代码。根据具体需求,您可能需要进一步了解OpenCV的其他功能和用法,并进行相应的配置和编码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值