前言
之前已经搭建好的Qt5 和 OpenCV的环境(并且我之前写过博文,在这里),今天我运行了一下之前可以运行的程序, 竟然出现了问题:
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #include <QCoreApplication>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
cv::Mat image = cv::imread("..\\helloWorld\\image.jpg");
cv::namedWindow("Image");
cv::imshow("Image", image);
cv::waitKey(0);
return a.exec();
}
|
配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| QT += core
QT -= gui
CONFIG += c++11
TARGET = helloWorld
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH+=C:\third_packages\opencv\opencv2410-qt5\include\opencv \
C:\third_packages\opencv\opencv2410-qt5\include\opencv2 \
C:\third_packages\opencv\opencv2410-qt5\include
LIBS+= C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_calib3d2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_contrib2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_core2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_features2d2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_flann2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_gpu2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_highgui2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_imgproc2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_legacy2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_ml2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_nonfree2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_objdetect2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_ocl2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_photo2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_stitching2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_ts2410.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_video2410.dll.a \
C:\third_packages\opencv\opencv2410-qt5\lib\libopencv_videostab2410.dll.a \
|
出现的问题
调试的时候出现了下面的错误:
运行程序的时候,什么的没有。但是在应用程序输出栏里面有这面截图是如数
我简单的用语言叙述一下出现的这个问题:
当我点击运行的时候,程序会弹出黑色的终端窗口,在应用程序窗口里面,程序会显示自动退出,然后代码是:-1073741515。
我想研究一下,究竟是什么地方出现看错误,所以,我点击 调试 按钮,然后就出现了上面三个错误提示窗口。
解决办法
在我没有上网上找解决办法之前,我猜测是因为我后来在电脑上安装了什么软件或者又搭建了什么环境,然后可能是影响到了Qt 和 OpenCV 的开发环境了,可能是被神不知鬼不觉的给改了什么地方。
网上说:是因为环境变量没有添加的原因,但是我之前都添加过环境变量了。我想可能是因为其他的软件把我添加的环境变量个删除了或者挤下去了。所以现在我来查看一下当前的环境变量:
通过查看,环境变量都在:
我使用下面的程序测试Qt5软件。程序是可以正常运行的。正常的输出的 Hello World!
。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <QCoreApplication>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
#include <iostream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// cv::Mat image = cv::imread("..\\helloWorld\\image.jpg");
// cv::namedWindow("Image");
// cv::imshow("Image", image);
// cv::waitKey(0);
std::cout << "Hello World!" << std::endl;
return a.exec();
}
|
我刚刚再次查看了一下系统的环境变量,还真的发现:OpenCV-Qt的编译生成的bin
的路径不在了。(也不知道是我之前根本就没有添加,我也忘记了)
将我之前编译的OpenCV-Qt的bin
路径添加到当前的系统的环境变量里面:
然后现在,关掉Qt软件(必须要关闭,然后重新启动)。然后重新启动Qt5软件。
现在再次运行程序,问题解决: