OpenCV程序编译但不运行

时间:2016-07-04 16:21:28

标签: c++ opencv runtime-error

我正在使用OpenCV 2.4.13和MinGW 4.9在Windows 8上工作 我写了一个简单的小型opencv程序来检查是否所有内容都安装正确。以下是代码:

#include <opencv2/highgui/highgui.hpp>

int main () {
    printf("in main\n");
    for (int i = 0; i<10; i++) {
        printf("here\n");
        IplImage * image = cvLoadImage("C:/{...}/test.jpg");
        cvReleaseImage(&image);
    }
    return 0;
}

我在命令提示符下使用以下命令编译它:

g++ -o test test.cpp -LC:\{...}\opencv\build\x64\vc11\lib -lopencv_core2413 -lopencv_highgui2413 -IC:\{...}\opencv\build\include

{...}是指定文件夹/文件的路径。

此命令正常运行,编译成功,没有任何错误。但是,当我用:

运行它时
test  

in main和一个here被打印,之后我收到错误消息&#39; test.exe已停止工作。 Windows正在寻找解决方案。&#39;

我所做的一切:

  1. 要安装OpenCV,请运行下载的opencv可执行文件(提取所有文件)并添加系统变量OPENCV_DIR并编辑系统PATH以获取DLL的位置(位于%OPENCV_DIR%\ bin中),如下所示:
    http://docs.opencv.org/2.4/doc/tutorials/introduction/windows_install/windows_install.html#installation-by-using-the-pre-built-libraries
  2. 尝试在与.exe相同的目录中添加所需的DLL。
  3. 尝试从vc12目录做整件事。
  4. 出现错误消息后,它会提供调试选项。按下它后,Just In Time Debugger打开并说“test.exe&#39;中发生了未处理的win32异常”。我用Google搜索并尝试按照此处的指示检查注册表项 https://support.microsoft.com/en-us/kb/811191
    但它已经正确设置。所以,我没有什么可以改变的。
  5. 根本没有什么对我有用。如果需要更多信息,请告诉我。我正在拼命寻找解决方案。

1 个答案:

答案 0 :(得分:0)

For those who might be encountering the same problem, I compiled the program with OpenCV dynamic (.dll) libraries instead of the .lib files and it ran just fine at runtime for some reason.