2012-12-16 5 views
8

우분투 12.04에서 openCV를 제대로 연결하기 위해 오랜 시간을 보내고 다른 사람들을 위해 배운 것을 공유 할 것이라고 생각했습니다. OpenCV의이 버전의 라이브러리에 대해 다른 이름 지정 규칙을 가지고 (내가 틀렸다면 수정하시기 바랍니다)우분투 12.04에서 OpenCV 컴파일 및 링크하기

OpenCV의 중대하다

sudo apt-get install libopencv-dev 

로 우분투 저장소에서 구할 수 있지만 저는 믿습니다 . 가장 큰 차이점은 C++에서 (가) 라인이 이의를 컴파일하지만 연결되지 코드를 얻을 것이다

#include "opencv2/opencv.hpp" 

읽어야 포함한다는 것이다. 또 다른 차이점은 정적 라이브러리의 이름이 libcv *에서 libopencv *으로 바뀌 었습니다. 예를 들어 바이너리는 지금은 명시 적으로

target_link_libraries(main opencv_core opencv_highgui ...) 
CMake

g++ main.cpp -lopencv_core -lopencv_highgui ... 

에 또는 내 컴파일러 명령을 변경하여 새 라이브러리 이름에 대한 링커에게 필요한이 문제를 해결하려면

/usr/lib/libopencv_core.so 
/usr/lib/libopencv_highgui.so 
. 
. 
. 

에 위치 할 수 있습니다

도움이 되었기를 바랍니다. 그리고 누군가가 저보다 더 많이 알고 있으면, 여기서 무슨 일이 일어나고 있는지 알고 싶습니다.

- 마이크

+0

당신은 우분투에 일식에 동일한 작업을 수행하는 방법을 알 수 있습니까? 우분투 12.04에서 Eclipse 3.7을 사용하고 있습니다. – wrahool

답변

5

개인적으로는 컴파일 플래그를 얻기 위해 'PKG-설정'을 사용하고 있습니다. 주의

g++ `pkg-config --cflags opencv` main.c `pkg-config --libs opencv` -o main 

예 :

#include <stdio.h> 
#include <cv.h> 

int main(void) 
{ 
    printf("%s\r\n", CV_VERSION); 
    printf("%u.%u.%u\r\n", CV_MAJOR_VERSION, CV_MINOR_VERSION, CV_SUBMINOR_VERSION); 
} 
관련 문제