2010-01-24 2 views
3

패키지 관리에서 OpenCV C 라이브러리를 쿠분투 9.10에 설치했습니다. 이러한 라이브러리를 사용하는 작은 이미지 수정 프로그램을 작성했지만 컴파일하려고 할 때마다 OpenCV 라이브러리의 함수를 찾을 수 없다는 오류 메시지가 표시되기 때문에 컴파일 할 수 없습니다.opencv를 얻는 방법 쿠분투에서 일을 포함합니까? (netbeans 6.7.1에 포함하고 링크하는 방법에 대한 해답 포함)

이러한 헤더 파일은 /usr/include/opencv/ 폴더에 있지만 컴파일러는 함수를 찾을 수 없다고 말합니다.

나는 기본

에 의해 넷빈즈에서
#include <highgui.h> 
#include <cv.h> 

명령을 포함하도록 노력했다 (나는 특정 디렉토리에서 헤더 파일을 검색 할 수 넷빈즈를 설정)도 전체 경로를 포함하도록했습니다.

#include </usr/include/opencv/highgui.h> 
#include </usr/include/opencv/cv.h> 

또한 나는 (전체 경로를 포함하여) 콘솔 내 소스 파일을 컴파일하려고했으나 다시 나는 그 도서관의 기능을 찾을 수 없습니다 같은 오류 메시지를 받았습니다.

편집 :

내가 오류 메시지가

undefined reference to 'function_name' 

나는 내가 그 OpenCV의 라이브러리에서 사용하려고 모든 기능에 해당 오류를 얻을 수있다.

이 문제를 해결하는 방법에 대해 알고 싶습니다.


편집 II : 여기

난 당신이 성공적으로 있다고 가정 :

같은 문제를 넷빈즈 6.7.1을 사용하고이됩니다 경우 다른 사람에, 여기에 솔루션은 다른 웹 사이트에서 붙여 복사의 수동 또는 패키지 관리를 통해 opencv 라이브러리를 설치했습니다.

  1. 열기 넷빈즈는 다음을 수행하십시오 도구 -> 옵션 -> C/C++ -> 코드 지원은 - 포함 추가 할> 디렉토리 (나를 위해,/usr/지방/포함/OpenCV의)
  2. 프로젝트 이름 -> 속성 -> 빌드 -> C/C++ 컴파일러 -> 디렉토리 포함을 마우스 오른쪽 버튼으로 클릭하십시오. 포함 디렉토리 :/usr/local/include/opencv
  3. 프로젝트 이름 -> 마우스 오른쪽 버튼을 클릭하십시오. 속성 -> 빌드 -> 링커 -> 디렉토리 포함 :/usr/local/include/opencv 추가 옵션 : -I/us r/local/include/opencv -L/usr/local/lib -lcxcore -lcv -lhighgui -lcvaux -lml

다음 프로그램 작성 및 컴파일 !!

+2

컴파일러 오류 또는 링커 오류입니까? 오류 메시지의 정확한 텍스트를 게시하십시오. –

+0

"function_name '에 대한 정의되지 않은 참조가 표시됩니다. 해당 라이브러리에서 사용하려고하는 함수가 거의 없으며 컴파일러는 각각에 대해 동일한 오류를 알려줍니다. – zaplec

답변

1

"정의되지 않은 참조"는 링커 오류입니다. 응용 프로그램을 OpenCV 라이브러리와 연결하는 것을 잊었습니다.cv 및 highgui (-lcv -lhighgui)에 링크하거나 Tobu가 제공 한 pkg-config 호출을 사용하십시오. 나는 또한 더 자세한 오류 메시지에 대한 요청을 두 번째 줄 것입니다.

+0

"gcc myprogram.c -o myprogram -Wall -I/usr/local/include/opencv -L/usr/local/lib -lm -lcv -lhighgui"줄을 사용하여 콘솔에서 내 프로그램을 컴파일하여 작동하게했습니다. 팁 및 수정 주셔서 감사합니다 그것은 링커 오류 :) – zaplec

0

OpenCV는 유닉스에서 라이브러리와 헤더를 찾는 표준 방법 인 pkg-config을 사용합니다.

make CFLAGS="$(pkg-config --cflags --libs opencv)" your-program 
+0

나는 그것을 시도했지만 작동하지 않거나 잘못하고있다. 나는 내 프로그램에 만들어 져야 할 것이 없다는 메시지를 받는다. – zaplec

+0

'your-program.c'가 소스 파일이라면,'your-program'은 아직 존재하지 않습니다. 확장자가없는 명령을 시도하십시오. 정확한 복사 붙여 넣기 메시지도 좋습니다. – Tobu

관련 문제