OpenCV 和 Qt 5.3 奇怪的消息

OpenCV and Qt 5.3 weird message

我正在尝试 运行(在 Qt、C++ 中)以下使用 OpenCV 的代码:

.pro 文件:

QT       += core
QT       -= gui

TARGET = testOpenCV2
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

SOURCES += main.cpp

INCLUDEPATH += C:\opencv\build\include
LIBS += C:\opencv\release\bin\libopencv_core300.dll
LIBS += C:\opencv\release\bin\libopencv_highgui300.dll
LIBS += C:\opencv\release\bin\libopencv_imgcodecs300.dll
LIBS += C:\opencv\release\bin\libopencv_imgproc300.dll

main.cpp 文件:

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main(int argc, char *argv[])
{
    cv::Mat image = cv::imread("pic.jpg", CV_LOAD_IMAGE_COLOR);
    cv::namedWindow("My Image", WINDOW_AUTOSIZE);
    cv::imshow("My Image", image);
    cv::waitKey(0);

    return 0;
}

但我收到以下消息:

exited with code -1073741515

有时我会收到以下消息:

Cannot obtain a handle to the inferior: The parameter is incorrect.

什么也没有发生。

有人能帮帮我吗?

我是 Qt 的新手,我不知道发生了什么。

您根本没有使用 Qt(除非您尝试 link QtCore)。对于 运行 个 QtApplication,您至少需要调用 QCoreApplication。

#include <QCoreApplication>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // Some code here
    // QMainWindow w;
    // w.show();

    return a.exec();
}

创建一个非 Qt 应用程序,您可以将您的 pro 文件更改为(完全省略 QT):

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

INCLUDEPATH += C:\opencv\build\include
LIBS += C:\opencv\release\bin\libopencv_core300.dll
LIBS += C:\opencv\release\bin\libopencv_highgui300.dll
LIBS += C:\opencv\release\bin\libopencv_imgcodecs300.dll
LIBS += C:\opencv\release\bin\libopencv_imgproc300.dll

这样你也不需要''QCoreApplication''