win7上qt5.1.1 opencv2.4.7 cmake2.8.12.1环境搭建(关键在环境变量)

4 篇文章 0 订阅

      最近因为在参加c++培训,3礼拜8天课的培训坑爹啊,前3天讲天书,第4天说要做东西出来了,坑我啊!我c++以前都没学过快哭了,现在只能边做边学了。

      因为我们组选的题目是有关图像处理的,为了降低项目难度,所以我们就采用了opencv视觉库。界面的话我打算用qt,因为qt跨平台,linux下也能用来编写界面,那就拿来玩了。(现在跟linux有关的都想玩玩看,主要还是自己没什么方向,学的东西实在太多,都不知道深入什么,怎么深入了)。

      安装包准备: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.点击左下角运行,结果如下图


 



总结:最近事情多,多进程,都抢cpu资源、抢时间,事情多的时候就应该抽出空来想想该怎么把自己的时间精力发挥到最大化,快速冷静下来分析事情的轻重缓急,还有要尽自己所能把事情做好,就算别人要求不高,要严格要求自己。要抓紧时间啊,仍重道远。

好了 qt+opencv环境搭建好了,我要继续我坑爹的2礼拜项目之旅了。祝大家学习顺利




评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值