安装包准备:Qt 5.1.1 for Windows 32-bit (MinGW 4.8, OpenGL, 666 MB) https://qt-project.org/downloads
OpenCV-2.4.7 http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.7/OpenCV-2.4.7.exe/download
cmake-2.8.12.1-win32-x86.exe http://www.cmake.org/cmake/resources/software.html
参考资料http://blog.csdn.net/qiurisuixiang/article/details/8665278#reply 我按照这个文章配置的,但是最新版本qt5.1.1要在此基础上加点步骤,如果qt版本是5.0.1的请看参考资料。
接下来就总结下我这两天搭建环境时候遇到的问题吧。首先我去qt官网下了Qt 5.1.1 for Windows 32-bit (VS 2010, OpenGL, 504 MB),安装以后建了个工程直接构建,结果发现cl什么xx,没找到,cl不是vc的么,仔细一看这个包是要用vs的,我没装vs,也不想装vs,以前装过vs2010,电脑略卡。所以我换了个Qt 5.1.1 for Windows 32-bit (MinGW 4.8, OpenGL, 666 MB),有了MinGW就可以用gcc了。装好后测试成功,可以成功运行,qt就ok了。然后是opencv的库,我下了最新的opencv2.4.7 for win,安装后有源码包,我认为自己编译下还是有必要的,所以去下了最新的cmake2.8.12.1,安装运行cmake,在Configure中选了mingw,按下finish后cmake提示没找到mingw,百度了下发现自己没提供环境变量,然后把E:\qt5.1.1\qt5\Tools\mingw48_32\bin加入PATH环境变量中(如果已有PATH,只要编辑内容,在已经配置的路径后加个分号再把自己的路径加到后面就好了,没有PATH的话需要新建)。环境变量设好了就再次config,这下开始编译连接了,第一次config成功后,我把qt和opengl选上后第二次config,这下出问题了,cmake提示qt5xx没找到,这个问题我上网找了很久,最后我无聊去qt里面翻所提示文件,还让我找到了同名dll文件,然后我把这些文件夹的路径设置位环境变量(E:\qt5.1.1\qt5\5.1.1\mingw48_32\bin),再再次config,这次没报同样的错了,但是还有错,这次提示找不到qtxxxlib,再次到qt里翻,再次添加相应文件夹路径(E:\qt5.1.1\qt5\Tools\mingw48_32\i686-w64-mingw32\lib),再再再次config,这下指示提示有waring,但是可以Generate,不管了,先试试看,然后mingw32-make后,再次设置环境变量,打开qt测试自己编译的opencv的效果(中间遇到了些小插曲,LIBS要列具体的库),效果很不错。下面就来具体说说怎么让大家少走弯路。
)
1. 首先我们先来安装qt,安装的时候要勾上MinGW 4.8,安装完后可以测试下是否可以构建起来。
2.安装opencv和cmake 这里主要注意下cmake安装时要勾选加入所有环境变量,路径中也不能有空格和中文
3.将qt的三个环境变量加入PATH,分别是E:\qt5.1.1\qt5\Tools\mingw48_32\bin(gcc编译器所在路径) 请根据自己的qt安装目录选择路径
E:\qt5.1.1\qt5\5.1.1\mingw48_32\bin(如果报错说是没找到qt5xxx的就加这个路径)
E:\qt5.1.1\qt5\Tools\mingw48_32\i686-w64-mingw32\lib(如果报错说是没找到qtxxxlib的就加这个路径)
4.打开CMake,使用CMake编译OpenCV。配置源码路径与生成的目标路径
源码路径:要选择OpenCV安装目录下sources文件夹
目标路径:可以随意设置
5.点击Configure,下拉菜单选择MinGW makefiles,下面的4个选项选默认第一个,第一个选项是让cmake到环境变量上找,第二个选项是自定义编译器路径。
6.CMake编译结束后出现一大片红色,勾选生成列表中的WITH_OPENGL和WITH_QT两项,让后再次点击Configure,如果上面的环境变量都加正确了就会不会有error,只有些waring,这些经过我简单测试,暂时没发现有问题。
7.点击Generate按钮,生成makefile文件,成功后,底下会提示Generating done
下面的步骤都是参考http://blog.csdn.net/qiurisuixiang/article/details/8665278#reply,我只是按我的理解继续打了点字。
8.打开cmd,进入打开cmake时设置的目标路径(如cd /d e:/opencv_inc),输入mingw32-make命令开始编译,这个时间会很长,大家可以各忙各的了
9.上面步执行完后,执行mingw32-make install
10.opencv的编译过程结束了,然后我们要提取我们所要的库(makefile并不是我们需要的,编译下来的makefile都可以删了)
我们所要的是 1.OpenCV-2.4.7安装目录下的build/include目录
2.CMake目标路径下,MinGW编译后的bin目录
3.CMake目标路径下,MinGW编译后的lib目录
将这3个文件夹拷贝出来放到一起,然后其他的文件都可以删了。
11.将MinGW编译后的bin目录添加到用户PATH环境变量
12.然后可以测试下opencv是否编译成功,打开qt新建空的qt项目,在生成的pro文件中敲入
- INCLUDEPATH+=E:\opencv_inc\include\opencv\
- E:\opencv_inc\include\opencv2\
- E:\opencv_inc\include
- LIBS+= E:\opencv_inc\lib\libopencv_calib3d247.dll.a\ #opencv_inc是提取出来建的文件夹
- E:\opencv_inc\lib\libopencv_contrib247.dll.a\
- E:\opencv_inc\lib\libopencv_core247.dll.a\
- E:\opencv_inc\lib\libopencv_features2d247.dll.a\
- E:\opencv_inc\lib\libopencv_flann247.dll.a\
- E:\opencv_inc\lib\libopencv_gpu247.dll.a\
- E:\opencv_inc\lib\libopencv_highgui247.dll.a\
- E:\opencv_inc\lib\libopencv_imgproc247.dll.a\
- E:\opencv_inc\lib\libopencv_legacy247.dll.a\
- E:\opencv_inc\lib\libopencv_ml247.dll.a\
- E:\opencv_inc\lib\libopencv_objdetect247.dll.a\
- E:\opencv_inc\lib\libopencv_video247.dll.a
我在这里想偷懒,将LIBS写成LIBS+=C:\OpenCV\lib,构建时报错说找不到lib,然后我把lib的path加到环境变量试了试,还是不行,最后还是苦逼一个个把路径打出来了
13.新建一个cpp文件,在里面敲入
#include"cv.h"
#include"cxcore.h"
#include"highgui.h"
int main()
{
//声明IplImage指针
IplImage *pImg;
//载入图片
pImg=cvLoadImage("E:/qt project/sd4/text.jpg",1); //图片路径
//创建窗口
cvNamedWindow("Image",1);
//显示图像
cvShowImage("Image",pImg);
//等待按键
cvWaitKey(0);
//销毁窗口
cvDestroyWindow("Image");
//释放图像
cvReleaseImage(&pImg);
return 0;
}14.点击左下角运行,结果如下图