1. 程式人生 > >解決問題:Qt5 OpenCV “uring startup program exited with code 0xc0000135” “ exited with code -1073741515”

解決問題:Qt5 OpenCV “uring startup program exited with code 0xc0000135” “ exited with code -1073741515”

前言

之前已經搭建好的Qt5 和 OpenCV的環境(並且我之前寫過博文,在這裡),今天我運行了一下之前可以執行的程式, 竟然出現了問題:

程式碼:

#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(); }

配置:

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 \

出現的問題

除錯的時候出現了下面的錯誤:

Alt text

Alt text

Alt text

執行程式的時候,什麼的沒有。但是在應用程式輸出欄裡面有這面截圖是如數

Alt text

Alt text

我簡單的用語言敘述一下出現的這個問題:

當我點選執行的時候,程式會彈出黑色的終端視窗,在應用程式視窗裡面,程式會顯示自動退出,然後程式碼是:-1073741515

我想研究一下,究竟是什麼地方出現看錯誤,所以,我點選 除錯 按鈕,然後就出現了上面三個錯誤提示視窗。

解決辦法

在我沒有上網上找解決辦法之前,我猜測是因為我後來在電腦上安裝了什麼軟體或者又搭建了什麼環境,然後可能是影響到了Qt 和 OpenCV 的開發環境了,可能是被神不知鬼不覺的給改了什麼地方。

網上說:是因為環境變數沒有新增的原因,但是我之前都新增過環境變量了。我想可能是因為其他的軟體把我新增的環境變數個刪除了或者擠下去了。所以現在我來檢視一下當前的環境變數:

通過檢視,環境變數都在:

我使用下面的程式測試Qt5軟體。程式是可以正常執行的。正常的輸出的 Hello World!

#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路徑新增到當前的系統的環境變數裡面:

Alt text

然後現在,關掉Qt軟體(必須要關閉,然後重新啟動)。然後重新啟動Qt5軟體。

現在再次執行程式,問題解決:

Alt text