Qt+OpenCV运行时可以编译通过,但总是出程序异常结束。解决方案!
2016-08-20 00:27
483 查看
本人的运行环境为:
操作系统: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.libmain.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的。
本人就是这样搞定了。
操作系统: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.libmain.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的。
本人就是这样搞定了。
相关文章推荐
- QT_openCV2.4.9或相关版本编译正常,运行时提示“程序异常结束”问题分析
- QT 编译通过但是运行出现程序异常结束或者crashed的问题 在QT creator中最佳解决办法
- 【Qt学习笔记】在Qt编译好之后运行程序时提示:程序异常结束。The process was ended forcefully. ....exe crashed.
- win7运行第一个opencv程序,基于opencv3.2,官方vc14编译版本,QT5.8 VS2015平台
- Qt opencv程序运行异常
- 初学OpenCV3,运行编程入门上读取并播放视频的原版程序,编译通过但是没有任何输出,已按网上博主各种方法试,还是没有结果,大家看怎么解决?
- 【Qt】Qt程序编译成功,执行时报错:程序异常结束,crashed
- 配置EditPlus使其可以编译运行java程序
- C++/Qt程序编译运行时出现的问题以及解决办法
- 通过DOS编译运行Java程序
- vs 2008的工程编译的manifest文件导致程序无法运行,通过设置 /MANIFESTDEPENDENCY (Specify Manifest Dependencies) 解决
- vs2010编译程序无法在XP SP2以前运行的解决方案
- 配置EditPlus使其可以编译运行java程序
- VC 6.0 写完的程序程编译链接通过后,点运行的时候出现one or more files out of date or not exist
- QT4.7.1以及QT create编译Ubuntu x86 pc运行程序提示g++ commond no find错误
- Windows XP 下使用命令行编译、运行 QT4 程序
- 【java & c#】通过控制台编译和运行程序//不依赖IDE
- Linux+QT+OpenCv摄像头调试心得(2)----点击退出关闭窗体,提示“程序异常终止”
- 如何编译可以在arm平台上运行的可执行程序?
- 编译QT5.0.1的错误“qtbase\\configure.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件”的解决方法