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

OpenCV C++ app terminates immediately when launched from Eclipse

本文关键字:终止 启动 Eclipse C++ 应用程序 OpenCV      更新时间:2023-10-16

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

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

我认为这个问题与无法在运行时找到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;
}

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

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

当一切似乎都不起作用时,创建一个新的工作区对我来说是可行的。