【问题标题】:Qt OpenCV programm exits with code -1073741515Qt OpenCV 程序以代码 -1073741515 退出
【发布时间】:2018-09-04 07:53:18
【问题描述】:

我想做什么

我尝试使用 opencv 并运行一个简短的示例程序。

问题

它以代码-1073741515 退出。我从来没有设法在我尝试过的 4 个系统中的任何一个上使用 openCV,所以我做错了但不知道是什么。

我在使用不同的尝试时遇到了不同的错误(未定义的引用、没有错误代码的崩溃程序等),这是最简单的示例。

我发现了什么

另一个post 告诉我,-1073741515 等于0xC0000135 意思是STATUS_DLL_NOT_FOUND

我尝试了什么

程序崩溃,如果包含#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>。当我将它们注释掉时,它会按预期运行 wnd 返回 0。我什至不需要使用像cv::Mat 这样的东西来让它崩溃。这看起来很奇怪,因为代码完成向我建议了来自 openCV 的东西,所以它以某种方式看到了它。包含 #include <opencv2/opencv.hpp> 反而会导致相同的错误代码。包含以 opencv(不是 opencv2)开头的内容,例如 #include <opencv/cv.hpp>,但功能不足。

源文件

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

#include <iostream>
using namespace std;

int main()
{
    cv::Mat InputImage = cv::imread("C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum.jpg");

    if(!InputImage.empty())
        cv::imshow("test", InputImage);
    else
        cout << "imgage is empty" << endl;

    return 0;
}

项目文件

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

INCLUDEPATH += D:/opencv/build/include
LIBS += -LD:/opencv/build/x64/vc14/lib
LIBS += -lopencv_world343d
LIBS += -lopencv_world343

SOURCES += \
        main.cpp

相关文件夹

包含路径:

库:

项目:

构建(也将库复制到发布/调试文件夹):

版本

  • QT 5.10.1
  • MSVC17 64 位编译器
  • Windows 7 企业版 64 位
  • openCV 3.4.3 (vc14/vc15)

【问题讨论】:

  • opencv_world343.dll 在哪里?如果不是静态构建,需要把dll放在build-xxx-debug文件夹中
  • LIBS += -LD:/opencv/build/x64/vc14/lib 应为“vc15”,仅在调试时链接到 xxxd.lib,仅在发布时链接到 xxx.lib,并且需要将 .dll 放入与 exe 相同的文件夹中
  • 感谢 Jiu :-) 如果我复制 .dll 而不是 .lib,它可以工作。谢谢 Miki:我尝试了 vc14 和 vc15,但这并没有解决我的问题。感谢您提供放置位置的提示。

标签: c++ qt opencv


【解决方案1】:

正如Jiu 在上面的评论中指出的那样,解决方案很简单:

复制.dll 而不是.lib 即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 2018-10-15
    相关资源
    最近更新 更多