Qt下OpenCV编译配置(Cmake3.6.0+Mingw4.4+opencv2.4.9)c

2 篇文章 0 订阅

在此之前我用的mingw gcc4.4.0+Cmake3.6.0+OpenCV2.4.10进行编译的,那次报错了,没成功,然后拖了好多天,今天重新试验了一次,这次用的OpenCV2.4.9,莫名其妙的就编译通过了,很神奇。


原因具体还不清楚,查了一些相关的博客,有的说在Qt高版本下编译通过了,比如Qt5.0.2,我猜想可能和MinGW版本有关,因为高版本的qt带的mingw版本也较高,比如Qt5.0.2带的mingw版本为mingw4.7。


首先编译前要安装好所有工具:

1)mingw 4.4.0,我是之前配置qt的时候就装好了,我的qt版本是4.8.5的

2)OpenCV2.4.9 下载安装好

3)cmake3.6.0 

(最好把Mingw和cmake的bin加在环境变量path中,也许自动会加进去,可以手动检查下)


然后打开Cmake,选好源代码source code路径和build目标路径

点击configure的时候会提醒让你选择generator,我猜这意思是编译器吧,不知道怎么翻译


然后选好再点configure


成功的话会出现圈的done说明,并且列表中一片红

这时候去勾选生成列表中的WITH_OPENGL和WITH_QT两项

然后再configure后红色会消失,然后点一下generate就会出现下面的generating done。

(具体为什么这么做我也懵逼)



这些步骤走完会在目标文件夹下MakeFile文件,可以自己去查看一下,这就可以用mingw编译了

然后准备在命令行下编译(我用了差不多40分钟,挺慢的,ps:可见有个高配置电脑的重要性)



然后执行mingw32-make install,这一步较快,两分钟左右



------------------------------------分割线------------------------------------------------------------------------------------------

然后是配置Qt开发环境拷贝下面三个文件夹放进之前建的

D:\development_tools\opencv249\opencv_mingw_build 文件夹中
1)D:\development_tools\opencv249\opencv\build\include,这里面有opencv和opencv2两个文件夹,由于
opencv_mingw_build下也有include文件,我就把opencv和opencv2两个文件夹拷贝到了它原来的文件夹里,保留了里面的文件

2)CMake目标路径下,MinGW编译后的bin目录,D:\development_tools\opencv249\opencv_mingw_build\bin

3)3)CMake目标路径下,MinGW编译后的lib目录,D:\development_tools\opencv249\opencv_mingw_build\lib


MinGW编译后的bin目录,D:\development_tools\opencv249\opencv_mingw_build\bin目录添加到系统环境变量


然后是建立Qt工程,新建Qt控制台应用程序

在工程下的Pro文件中添加:

INCLUDEPATH+= D:\development_tools\opencv249\opencv_mingw_build\include\opencv\
              D:\development_tools\opencv249\opencv_mingw_build\include\opencv2\
                    D:\development_tools\opencv249\opencv_mingw_build\include


LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_gpu249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_highgui249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_imgproc249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_legacy249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_ml249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_nonfree249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_objdetect249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_ocl249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_objdetect249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_ml249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_imgproc249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_highgui249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_core249.dll.a
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib\libopencv_contrib249.dll.a


(网上有一种简单方法,添加:
LIBS += D:\development_tools\opencv249\opencv_mingw_build\lib
我这么添加的时候出差,看到有人成功,有人没成工,可以尝试)

main.cpp文件中添加:

#include "cv.h"
#include "cxcore.h"
#include "highgui.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    IplImage*pImg;
    pImg=cvLoadImage("E:/F Disk/QT_test/opencv_qt_test/1.jpg",1);
    cvNamedWindow("Image",1);
    cvShowImage("Image",pImg);
    cvWaitKey(0);
    cvDestroyWindow("Image");
    cvReleaseImage(&pImg);

    return a.exec();
}
运行后,就可以看到一个二次元萌妹了



参考博文:

http://blog.163.com/allegro_tyc/blog/static/337437682014102411829281/

http://blog.csdn.net/qiurisuixiang/article/details/8665278

http://blog.csdn.net/superdont/article/details/26007717


















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值