Qt5.7.0+cmake3.7.2+opencv2.4.13
容我吐槽一句。。。配置opencv+Qt真真是一段血泪史啊。。。>_<
开始是在笔记本上试着配置的,笔记本win10(64位),后来测试时一直调用不到库函数。更换了win7系统(64位),很快就ok了,现在想想当时应该是有些死磕了,还是版本没有协调好。
安装:
Cmake:名称:cmake-3.7.2-win64-x64 安装路径:D:\Qt\cmake-3.7.2-win64-x64;
最新的3.8.2,我下载了3.7.2,这个版本没有很大的限制,自由度较大,官网上直接就有,也比较小,建议大家在官网上下载。安装也很简单就直接解压就好了。
Opencv:名称:opencv-2.4.13 安装路径:D:\Qt\opencv;
最新版本是3.2,不过opencv2.4.13和3.2的区别在于底层的架构不同,所以不要对opencv2.4.x有歧视,我开始就是只看名称觉得版本低,会不稳定,然后一一试过opencv3.2,opencv3.1,opencv3.0还有opencv2.4.13,不过只有2.4.13配置成功了。。。(任务量之巨大,我也是福气我的耐心);这个在opencv官网上就可以下载的,安装也只需要解压缩。
Qt:名称:qt-opensource-windows-x86-mingw530-5.7.0 安装路径:D:\Qt\Qt5.7.0;
我给出的这个是32位的,不过64位是可以对付32位的。这个下载的话自己就找一下吧,网上其他教程很多都有提到下载路径。
这个我着重说一下安装,在安装中,一定要注意要勾选toos中的mingw530,一定要勾选!!!血泪教训,我就一直没有正确勾选然后导致后边的编译很麻烦。。
配置:
打开D:\Qt\cmake-3.7.2-win64-x64\bin\cmake-gui.exe;会弹出界面:
Where is thesource code:D:\Qt\opencv\sources;
Where tobuild the binaries:D\Qt\opencv_mingw;(这个是生成的文件夹,是我们自己新建的一个文件夹,可以随意起名字,不过不要出现中文,而且最好是在同一个文件夹下,这样方便一些也好进行查找)
然后点击左下角的configure;会弹出一个对话框,要选择MinGW makefiles;然后选择Specify nativecompilers;
点击finish;
会弹出一个新的小的窗口,这是需要对编译选择语言库;
c:D:/Qt/Qt5.7.0/Tools/mingw53_32/bin/gcc.exe
c++:D:/Qt/Qt5.7.0/Tools/mingw53_32/bin/g++.exe
点击finish,然后cmake进行配置。
然后就会理所应当的报错啦!为什么报错呢,原因有很多,不过我们先来更改环境变量吧。
在系统高级设置中对环境变量path进行更改,添加几个路径:
D:\Qt\Qt5.7.0\Tools\ mingw53_32\bin;
D:\Qt\Qt5.7.0\5.7\ mingw53_32\bin;
D:\Qt\cmake-3.7.2-win64-x64\bin;
不要问我为啥,这是血泪教训!!!!!!。。。。。。
然后勾选WITH_OPENGL和WITH_QT,去除掉WITH_IPP;
然后再次configure;
这时会出现一些NAME为*_DIR的文件找不到正确路径,我们就手动查找他们的value值,对应的文件夹为D:\Qt\Qt5.7.0\5.7\ mingw53_32\lib\cmake;
例如:Qt5Concurrent_DIR对应的Value值为D:\Qt\Qt5.7.0\5.7\ mingw53_32\lib\cmake\Qt5Concurrent;
如果有不是*_DIR的错误的,就在D:\Qt\Qt5.7.0\5.7\ mingw53_32\bin文件夹下查找。我只有一个有这样的情况,更改成了D:\Qt\Qt5.7.0\5.7\ mingw53_32\bin\qmake.exe;
就这样哪里错了改哪里
然后再次点击congfigure,这时就是congfigure done;
然后就可以generate了,等待generate done;
编译
在编译之前,在目录D:\Qt\opencv\cmake\下找到OpenCVCompilerOptions.cmake文件。打开文件,我用记事本打开的,查找到:add_extra_compiler_option(-Werror=non-vitural-dtor)将他注释掉,就是给其前面加一个井号键:#add_extra_compiler_option(-Werror=non-virtual-dtor);
这一步主要是为了接下来的编译方便的,我有试过不将其注释掉,结果白白浪费了大好青春去来回查找错误,编译。
然后运行cmd,找到你的cmake生成文件夹下的mingw530,对于我而言就是找到:D:\Qt\opencv_mingw\mingw530文件夹;(在cmd界面上显示的就是:D:\Qt\opencv_mingw\mingw530>,这一步)
然后在>后面直接输入mingw32-make命令:即为:D:\Qt\opencv_mingw\mingw530\mingw32-make
进行make,编译opencv,这个时间会很长滴,能看四分之一的电影吧…
Make好了以后就可以install啦~
输入命令mingw32-makeinstall,这个很快就能生成啦!
简单说一下,此时的opencv和opencv_mingw文件夹很大!不过用到的很小!只需要D:\Qt\opencv_mingw\install\include以及D:\Qt\opencv_mingw\install\x86\mingw\bin和D:\Qt\opencv_mingw\install\x86\mingw\lib这三个文件夹!
网上介绍如果需要节省空间的话,可以将除了这三个文件的其他opencv文件删除,不过我没有试验过。
此时,最最最重要的是又要添加环境变量了!!!
将D:\Qt\opencv_mingw\install\x86\mingw\bin添加入系统环境变量————至此,环境变量算是添加完了。。。我的辛酸史>_<
测试
然后就可以开始进行Qt Creator中工程文件的配置了…
这下不得不提到的是,我这一步,一直一直一直没有在win10上实现,不过一换到win7上突然一切都拨开乌云见光明了…..^_^也是服了我自己…
给大家贴一个最简单的读图然后显示的小程序吧…
.pro文件中需要添加包含头文件的语句:
INCLUDEPATH += D:\Qt\opencv_mingw\install\include\
D:\Qt\opencv_mingw\install\include\opencv\
D:\Qt\opencv_mingw\install\include\opencv2
接下来,如果你想使用动态链接库,则再添加:
LIBS += D:\Qt\opencv_mingw\install\x86\mingw\bin\libopencv_*.dll
而如果你想使用静态连接库,则要添加:
LIBS += D:\Qt\opencv_mingw\install\x86\mingw\lib\libopencv_*.a
给出大家一个简答的.cpp程序:
#include“cv.h”
#include“cxcore.h”
#include”hihgui.h”
Using namespace cv;
Int main()
{char imageName[255]=”home”;
char path[255]=”D:/Qt/home.jpg”;
Mat image;
image=imread(path,1);
nameWindow(imageName,CV_WINDOW_AUTOSIZE);
imshow(imageName,image);
waitKey(0);
return 0;
}
至此,配置完美…谨以此献给我首次配置环境的狗血历程,同时,放置网上,大家多多交流…(包容我没有贴图,捂脸跑)