Qt+OpenCV运行时可以编译通过,但总是出程序异常结束。解决方案!

本人的运行环境为:

操作系统:Windows7

运行:QtCreator(Qt5.7) + OpenCV(2.4.9)

背景:之前在另一台电脑运行的是Qt4.7 + OpenCV2.4.2,(.pro)文件配置如下:

<span style="white-space:pre">	</span>INCLUDEPATH += C:\Opt\opencv\build\include
	INCLUDEPATH += C:\Opt\opencv\build\include\opencv
	INCLUDEPATH += C:\Opt\opencv\build\include\opencv2

	LIBS+=      C:\Opt\opencv\build\x86\vc10\lib\opencv_ml242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_calib3d242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_contrib242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_core242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_features2d242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_flann242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_gpu242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_highgui242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_imgproc242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_legacy242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_objdetect242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_video242d.lib\
            C:\Opt\opencv\build\x86\vc10\lib\opencv_videostab242d.lib
main.c文件运行一个简单的opencv代码。

#include "mainwindow.h"
#include <QApplication>

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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

        //声明IplImage指针
        IplImage *pImg;
        //载入图片
        pImg=cvLoadImage("F:\\1.png",1);
        //创建窗口
        cvNamedWindow("Image",1);
        //显示图像
        cvShowImage("Image",pImg);
        //等待按键
        cvWaitKey(0);
        //销毁窗口
        cvDestroyWindow("Image");
        //释放图像
        cvReleaseImage(&pImg);

    return a.exec();
}
编译通过,程序可以正常运行。

今天,在新电脑配置好Qt5.7+opencv249后,在main.c贴的也是以上的

代码,(.pro)文件配置也一样只不过将242改为了249。然后在编译,可以通过

但是运行不了,一运行就出现以下错误信息。

Starting D:\Projects\PROS_Qt\build-TestQt5_7-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug\TestQt5_7.exe...

程序异常结束。

D:\Projects\PROS_Qt\build-TestQt5_7-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug\TestQt5_7.exe crashed.

于是网上找了类似问题,但是一般都是提问的,解决的倒是没找到,都是

零零散散的讨论,我在大家的讨论中总结了以下的解决方案。

  1)配置Qt的mingw环境变量,在系统环境变量Path后面添加以下几个路径

C:\Opt\qt5.7.0\5.7\mingw53_32\bin

C:\Opt\qt5.7.0\Tools\mingw530_32\bin

C:\Opt\qt5.7.0\Tools\mingw530_32\i686-w64-mingw32\bin

注:如果opencv的环境变量没配置,一行配置(配置自行度娘)。

  2)修改(.pro)文件的LIBS(加上-L -l ),修改如下,自行与以上.pro对比(红色

INCLUDEPATH+=       C:\Opt\opencv\build\include\opencv\
                    C:\Opt\opencv\build\include\opencv2\
                    C:\Opt\opencv\build\include

<span style="color:#ff6666;">LIBS += -L"C:Opt\\opencv\\build\\x86\\vc10\\lib" \
        -lopencv_core249 \
        -lopencv_highgui249 \
        -lopencv_imgproc249 \
        -lopencv_ml249d \
        -lopencv_video249d\
        -lopencv_features2d249d\
        -lopencv_calib3d249d\
        -lopencv_objdetect249d\
        -lopencv_contrib249d\
        -lopencv_legacy249d\
        -lopencv_flann249d</span>
现在,再次编译运行,不出意外应该可以了,如果不行,执行下一步。

3)删除之前编译的(debug or release)文件夹下的exe文件,然后再次

编译运行,这次绝对是OK的。

本人就是这样搞定了。



  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值