最近在使用Qt+openCV做项目 原来用msvc的编译器 ,但是对中文支持的不好,于是用MinGW的编译器 但是openCV中的带的库不能使用 总是出错
于是准备自己编译参照了 http://blog.sina.com.cn/s/blog_65caa978010131l5.html 的博客 可以实现
1. 软件
QT:使用的是Qt 5.21版本
OpenCV:只需解压,版本为2.43,下载地址为http://www.opencv.org.cn/index.php/Download
CMake:编译OpenCV用,版本号为2.8.9,应该是现在最新的,下载地址为http://www.cmake.org/cmake/resources/software.html
2. 软件的安装
首先安装Qt SDK,建议用custom方式安装,关于塞班开发的部分全部去掉,不用安装,可以节省一些硬盘空间,因为Qt安装完后要4.0+G,再加上OpenCv,我可怜的E盘顿时红了。另外Qt安装要需要很长时间,尤其是安装文档的时候,要耐心等待。SDK中包含MinGW4.4,所以不用单独安装。
我安装在E:\QtSDK,一般不要再路径出现空格,这样有些时候会有很大的麻烦。
安装完成后生成目录如下:
安装好后就可以打开Qt Creator,利用自带的测试程序进行测试,看是否安装正确。Creator一般已经配置好,不需要我们再进行配置。这个版本的Qt中给我们提供了两个编译器MSVC2008和MinGW4.4。在后面的Qt版本中不再自带MinGW,需要自己单独安装。
在项目,构建设置中选择Qt4.7.3 for desktop –MinGW4.4 调试,下面的版本同样选择MinGW4.4。
最后将MinGW的执行文件加入到环境变量,我这里是E:\QtSDK\mingw\bin,环境变量要重启或注销后才能生效,这里先不用重启,后面一道就可以了。
第二步,安装OpenCV2.43,只要将安装包解压到指定目录下就可以,同样,最好不要带空格。我解压到的目录是E:\OpenCV2.3。解压后生成两个文件,分别是bulid和opencv,bulid中是为vs2008和vs2010编译好的,这里暂且不管。
第三步,安装CMake,直接安装就好了,路径中同样不要带空格。我的路径是E:\CMake2.8,安装后生成目录如下:
3、 编译OpenCV
利用CMake编译OpenCV2.3,具体过程如下。
a、 打开CMake(这个相当于打开冰箱门)
b、 在where is the source code中输入路径E:/OpenCV2.3/opencv
c、 在where to build the binaries中输入路径E:/OpenCV2.3/MinGW,这个可以随便定义。
d、 点击configure
e、 会出现让你指定generator的界面选择MinGW Makefiles,方式选择Specify native compolers
f、接下来会选择编译器,分别为C和C++指定编译器位置,如下图所示:
g、再次点击configure,会出现如下红色的错误,更改CMAKE_BUILD_TYPE的值为DEBUG(或者RELEASE),选中WITH_QT后面的复选框,选中BUILD_EXAMPLES后的复选框(可以不选)。再次点击configure。
h、 会出现下面的错误,找不到Qmake的执行位置,更改后面的值,为其制定路径如下。
i、 再次点击configure就不会出现错误了,在点击Generate,OK完事,编译好的文件目录如下:
j、 编译好的文件中会有一个Readme.txt文件,将readme.txt去掉后缀名,放入到opencv文件夹中,这一点很重要,不然后面会出现错误。
k、 打开命令行,cd到MinGW目录下,执行命令mingw32-make,这个需要一定的时间,耐心等待
l、 接着执行命令mingw32-make install,执行完成后会在MinGW目录下生成一个install文件夹,要用的东西都在里面,(其他文件可以删除掉)如下:
m、 将E:\OpenCV2.3\MinGW\install\bin加入到环境变量,此时重启。
4、配置Creator
建立工程,需要修改.pro文件,添加include和lib。例如
INCLUDEPATH+=E:\OpenCV2.3\MinGW\install\include
INCLUDEPATH+=E:\OpenCV2.3\MinGW\install\include\opencv
LIBS+=E:\OpenCV2.3\MinGW\install\lib\libopencv_core230d.dll.a
LIBS+=E:\OpenCV2.3\MinGW\install\lib\libopencv_highgui230d.dll.a
LIBS+=E:\OpenCV2.3\MinGW\install\lib\libopencv_imgproc230d.dll.a
调试选择MinGW4.4