从Eclipse启动时,OpenCV C ++应用程序立即终止

时间:2012-02-02 22:10:42

标签: c++ windows-7 opencv eclipse-cdt

我目前在使用从Eclipse启动的OpenCV获取一个非常小的应用程序时遇到了问题。应用程序从命令行启动很好,但是当我从Eclipse启动时,它只是立即终止而没有输出。我希望至少将“Hello \ o /”打印到控制台。

我发现只有当我调用与OpenCV相关的方法时才会发生这种情况。因此,如果我要注释掉与OpenCV相关的所有行,我会看到“Hello \ o /”打印到Eclipse控制台。

我假设问题是与运行时无法找到OpenCV DLL相关的问题(我最初在命令行遇到了这个问题,但是通过将OpenCV bin目录添加到PATH变量来解决这个问题)。我已经尝试在Eclipse中单独将其添加到我的运行配置中,但这没有任何区别。

任何想法是什么导致了这个问题?

我的来源:

#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdio.h>
#include <iostream>
using namespace std;

int main(int argc, char** argv) {
cout << "Hello \\o/" << endl;
    /* data structure for the image */
    IplImage *img = 0;

    /* check for supplied argument */
    if (argc < 2) {
        fprintf(stderr, "Usage: loadimg <filename>\n");
        return 1;
    }

    /* load the image,
     use CV_LOAD_IMAGE_GRAYSCALE to load the image in grayscale */
    img = cvLoadImage(argv[1], CV_LOAD_IMAGE_COLOR);
    /* always check */
    if (img == 0) {
        fprintf(stderr, "Cannot load file %s!\n", argv[1]);
        return 1;
    }

    /* create a window */
    cvNamedWindow("image", CV_WINDOW_AUTOSIZE);

    /* display the image */
    cvShowImage("image", img);

    /* wait until user press a key */
    cvWaitKey(0);

    /* free memory */
    cvDestroyWindow("image");
    cvReleaseImage(&img);

    return 0;
}

2 个答案:

答案 0 :(得分:2)

您很可能在LD_LIBRARY_PATH(环境变量)中缺少OpenCV的 lib 目录。

答案 1 :(得分:-1)

我有同样的问题。我先检查并纠正了所有路径。

当似乎没有任何效果时,为我创建一个新的工作区。