QT 5.6与OPenCV运行时间0xc0000139

时间:2016-05-29 19:06:27

标签: qt opencv

是否有人使用QT 5.6与OpenCV合作?

尝试了OpenCV最新2.4.13(在撰写本文时)并回到了OpenCV 2.4.9。 没有工作 - 程序将编译,链接但崩溃“在启动程序退出代码0xc0000139”。我从未遇到过QT 5.5.1和OpenCV的任何问题。

以下是代码:

**mainwindow.cpp:**
    #include "mainwindow.h"
    #include "ui_mainwindow.h"

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

    using namespace cv;

    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    cv::Mat image = cv::imread("C:/Users/foo/pics/cheetah.jpg");
    cv::namedWindow("My Image");
    cv::imshow("My Image", image);
    cvWaitKey(0);

    } 

    MainWindow::~MainWindow()
    {
        delete ui;
    }

    **main.cpp (used default):**
        #include "mainwindow.h"
        #include <QApplication>

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

           return a.exec();
        }


**mainwindow.h: (used default)**

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H

    #include <QMainWindow>

    namespace Ui {
    class MainWindow;
    }

    class MainWindow : public QMainWindow
    {
        Q_OBJECT

    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();

    private:
        Ui::MainWindow *ui;
    };

    #endif // MAINWINDOW_H


**test_opencv.pro:**
    INCLUDEPATH += "C:\Users\foo\Downloads\opencv\build\include"


    LIBS += -LC:\Users\foo\Downloads\opencv\build\lib \
    -lopencv_core249.dll              \
    -lopencv_highgui249.dll           \
    -lopencv_imgproc249.dll           \
    -lopencv_features2d249.dll        \
    -lopencv_video249.dll            \
    -lopencv_calib3d249.dll

    QT       += core gui

    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

    TARGET = test_opencv
    TEMPLATE = app


    SOURCES += main.cpp\
    mainwindow.cpp

    HEADERS  += mainwindow.h
    FORMS    += mainwindow.ui

    Path set:
    C:\Qt\Tools\mingw492_32\bin
    C:\Qt\5.6\mingw49_32\bin
    C:\Users\foo\Downloads\opencv\build\bin

QT在没有OpenCV调用的情况下工作正常。使用上面的代码,使用QT Debug运行会看到:

“在启动程序期间退出代码0xc0000139”。

QT Error message     我仔细检查了我的路径。 OpenCV DLL在Path中定义。问题不在于没有找到动态链接dll的运行时。我还检查了我的System32和其他目录中是否有任何旧的OpenCV dll,它们可能会在遍历路径时发生干扰。没有问题。

OpenCV是使用CMake构建的,并且已成功构建和安装。那里没有问题。

由于 肖恩

0 个答案:

没有答案