【发布时间】: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,但这并没有解决我的问题。感谢您提供放置位置的提示。