简体   繁体   English

OpenCV 2.4.10 + Qt Creator 3.2.0和Qt5.4.0 MingW 64bits Windows 7 - “退出代码-1073741515”

[英]OpenCV 2.4.10 + Qt Creator 3.2.0 & Qt5.4.0 MingW 64bits Windows 7 - “exited with code -1073741515”

I have compiled OpenCV 2.4.10 to work with Qt 5.4 mingw for 64 bits. 我已经编译了OpenCV 2.4.10以使用Qt 5.4 mingw 64位。 When I compile the most basic example of loading a picture it gives the following error: 当我编译加载图片的最基本的例子时,它给出以下错误:

exited with code -1073741515 退出,代码为-1073741515

Does anyone knows what this means and how I could fix it? 有谁知道这意味着什么以及如何解决它?

QT      += core
QT      += gui
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

TEMPLATE = app

SOURCES += main.cpp

INCLUDEPATH += C://opencv2_build//install//include
LIBS += C://opencv2_build//bin//*.dll

The error code means "Dependency missing". 错误代码表示“依赖性缺失”。 A working configuration for OpenCV in QT should looks like this: QT中OpenCV的工作配置应如下所示:

LIBS += -LC:\\Programs\\opencv24\\opencv_bin2\\bin \
    libopencv_core240d \
    libopencv_highgui240d \
    libopencv_imgproc240d \
    libopencv_features2d240d \
    libopencv_calib3d240d \

Source: here 来源: 这里

Looks like an error where you're not linking with OpenCV correctly. 看起来像是一个错误,你没有正确链接OpenCV。 This is an example of how you can link your application correctly (put it in your .pro file): 这是一个如何正确链接应用程序(将其放在.pro文件中)的示例:

win32 {
    OPENCV_LIB_DIR = $$PWD/libs/opencv/Windows
    INCLUDEPATH += $$PWD/include/opencv/Windows
}

linux {
    OPENCV_LIB_DIR = $$PWD/libs/opencv/Linux
    INCLUDEPATH += $$PWD/include/opencv/Linux
    LIBS += -L$$OPENCV_LIB_DIR
}

message(OpenCV Library directory: $$OPENCV_LIB_DIR)
LIBS += -L$$OPENCV_LIB_DIR

win32 {
    LIBS += -lopencv_core248
    LIBS += -lopencv_calib3d248
    LIBS += -lopencv_contrib248
    LIBS += -lopencv_features2d248
    LIBS += -lopencv_flann248
    LIBS += -lopencv_gpu248
    LIBS += -lopencv_highgui248
    LIBS += -lopencv_imgproc248
    LIBS += -lopencv_legacy248
    LIBS += -lopencv_ml248
    LIBS += -lopencv_nonfree248
    LIBS += -lopencv_objdetect248
    LIBS += -lopencv_ocl248
    LIBS += -lopencv_photo248
    LIBS += -lopencv_stitching248
    LIBS += -lopencv_superres248
    LIBS += -lopencv_video248
    LIBS += -lopencv_videostab248
}


linux {
    LIBS += -lopencv_core
    LIBS += -lopencv_calib3d
    LIBS += -lopencv_contrib
    LIBS += -lopencv_cuda
    LIBS += -lopencv_cudaarithm
    LIBS += -lopencv_cudabgsegm
    LIBS += -lopencv_cudacodec
    LIBS += -lopencv_cudafeatures2d
    LIBS += -lopencv_cudafilters
    LIBS += -lopencv_cudaimgproc
    LIBS += -lopencv_cudaoptflow
    LIBS += -lopencv_cudastereo
    LIBS += -lopencv_cudawarping
    LIBS += -lopencv_features2d
    LIBS += -lopencv_flann
    LIBS += -lopencv_highgui
    LIBS += -lopencv_imgproc
    LIBS += -lopencv_legacy
    LIBS += -lopencv_ml
    LIBS += -lopencv_nonfree
    LIBS += -lopencv_objdetect
    LIBS += -lopencv_optim
    LIBS += -lopencv_photo
    LIBS += -lopencv_shape
    LIBS += -lopencv_softcascade
    LIBS += -lopencv_stitching
    LIBS += -lopencv_superres
    LIBS += -lopencv_ts
    LIBS += -lopencv_video
    LIBS += -lopencv_videostab
}

Notice that I use the -L flag to tell what the library folder is, and then the -l flag against each DLL (Windows) or .so (Linux). 请注意,我使用-L标志来说明库文件夹是什么,然后使用-l标志针对每个DLL(Windows)或.so(Linux)。 You have a few different options in regards to how you actually want to link the library, but this method works for me. 关于如何实际链接库,您有几个不同的选项,但这种方法适合我。 Hope this helps! 希望这可以帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM