2012-02-02 2 views
2

Eclipse에서 OpenCV를 사용하여 매우 작은 응용 프로그램을 얻는 데 현재 문제가 있습니다. 응용 프로그램은 명령 행에서 정상적으로 시작하지만, Eclipse에서 실행하면 출력이 없어 즉시 종료됩니다. 나는 적어도 "Hello \ o /"가 콘솔에 출력 될 것으로 기대한다.Eclipse에서 시작할 때 OpenCV C++ 응용 프로그램이 즉시 종료됩니다.

나는 이것이 OpenCV와 관련된 메소드를 호출 할 때만 발견했습니다. 따라서 OpenCV와 관련된 모든 행을 주석 처리하려면 이클립스 콘솔에 "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; 
} 
+0

OpenCV에 대한 경험이 없지만 콘솔을 볼 때 항상 Hello World 출력을 받아야합니다. 여하튼 실행 명령에 인수를 추가하고 있습니까? 당신이 명시 적으로 그들을 요구하고 있기 때문에 ... – niktehpui

+0

그래, 난 항상 "안녕하세요"와 나는 입력 이미지입니다 단일 인수를 추가해야합니다, 코드는 단순히 그것을 표시합니다. 나는 사실 Eclipse를 새로운 작업 공간을 만들어서 Eclipse에서 작동하도록 만들었습니다. Eclipse가 단순히 현재 환경에서 최신 상태를 유지하지 못한다고 생각하게 만듭니다. 이후에 Eclipse를 다시 시작했지만 작업 공간을 만든 후에 OpenCV bin 디렉토리를 추가했습니다. 적어도 이제는 두 구성 사이의 차이점을 찾아야 만합니다. – Kingamajick

답변

2

당신은 아마 LD_LIBRARY_PATH (환경 변수)에서 OpenCV의의 LIB 디렉토리가 누락되었습니다.

+0

이 설정은 실행 구성에서 설정합니다 (감사합니다 :). 나는 이클립스가 작업 공간이 생성 될 때 이것을 생성한다고 가정한다. (새로운 작업 공간이 작동한다.) 설정을하지 않고 작업 공간 레벨에서 설정할 수있는 위치를 알고 계십니까? – Kingamajick

+0

시스템 재부팅 후에이 설정을 유지하려면'~/.bashrc'를 편집하여 다음을 추가하십시오 :'export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH : path_to_opencv_libs' – karlphillip

+1

감사합니다!^_^감사합니다! – kunal18

-1

나는 동일한 문제가있었습니다. 모든 경로를 먼저 확인하고 수정했습니다.

아무 일도 없을 때 새로운 작업 공간을 만드는 것이 효과가있었습니다.

관련 문제