我最近开始研究OpenCV并配置了OpenCV和MingW。我正在使用Windows 7操作系统。我没有在我的程序中使用任何IDE。但我仍然对我现在正在进行的程序感到满意。
我编写了第一个程序并且编译成功但是当我运行.exe
文件时,它给出了一个应用程序错误:
The application was unable to start correctly (0x0000005). Click OK to close the application.
以下是我写的代码:
#include "cstdlib"
#include "iostream"
#include "opencv2/highgui/highgui.hpp"
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("v.jpg", CV_LOAD_IMAGE_COLOR);
if (img.empty())
{
cout << "Error: Image cannot be loaded...!!" << endl;
system("pause"); //wait for a key press
return -1;
}
namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
imshow("MyWindow", img);
waitKey(0);
destroyWindow("MyWindow");
return 0;
}
为了执行,我写了一个批处理文件,如下所示并执行它::
g++ -I"D:\opencv\opencv\build\include" -L"D:\opencv\opencv\build\x86\mingw\lib" ImageTest1.cpp -lopencv_core246 -lopencv_highgui246 -o ImageTest1.exe
ImageTest1.exe
pause
我还在系统路径::
中添加了以下内容D:\MingW\bin;;D:\MingW\msys\1.0\bin;;D:\OpenCV\opencv\build\x64\mingw\bin;;
我尝试将x64更改为x86。但那没用。
编辑:我以管理员身份执行了.exe
,并说The application was unable to start correctly (0xc000007b). Click OK to close the application
答案 0 :(得分:4)
我不相信您已准确报告错误代码。我不相信错误代码只包含7个十六进制数字。它包含8.我相信你错过了第一个数字,我打赌是c
。在这种情况下,错误消息确实是:
The application was unable to start correctly (0xc0000005).
现在,该代码是NT状态代码STATUS_ACCESS_VIOLATION
。当系统告诉您应用程序无法启动时,这意味着错误发生在加载程序的代码中。换句话说,您的代码甚至尚未开始运行。错误将发生在您的一个从属DLL的DllMain
函数中。
很可能在加载的不同DLL之间存在一些不兼容性。为了进一步调试,您可能需要调试加载过程。首先在配置文件模式下运行Dependency Walker,找出哪个模块DllMain
正在引发异常。希望Dependency Walker能够指出你的依赖库中存在的不匹配。
答案 1 :(得分:0)
将系统导入放在<>
括号中。这适用于<cstdio>
和<iostream>
。
编辑:我误读了错误代码。请忽略我的其余答案。
似乎Windows无法在启动时找到库。
我的假设基于 0x7B
错误。