2012-04-17 4 views
1

OpenCV로 C 코드를 컴파일하려고합니다. 내가, 내가 다음 플래그C에서 OpenCV로 컴파일 할 때의 문제

-L/usr/lib 
-lpthread 
-lrt 
-l 
-I/usr/local/include/opencv 
-I/usr/local/include 
-L/usr/local/lib 
-lopencv_core 
-lopencv_imgproc 
-lopencv_highgui 
-lopencv_ml 
-lopencv_video 
-lopencv_features2d 
-lopencv_calib3d 
-lopencv_objdetect 
-lopencv_contrib 
-lopencv_legacy 
-lopencv_flann 

을 사용하고 컴파일하려고 내가이 오류를 얻을 때 :

cannot find -lopencv_core 
cannot find -lopencv_imgproc 
cannot find -lopencv_flann 

pkg-config--cflags OpenCV의 :

-I/usr/local/include/opencv -I/usr/local/include 

pkg-config--libs OpenCV의 :

-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann 

여기에 무슨 문제가 있습니까? 미리 감사드립니다.

+0

opencv_core/flann .a 파일이/usr/lib 또는/usr/local/lib에 있다는 것을 확인했다고 가정합니다. – Diziet

+0

나는 opencv_core/flann .so 파일을/usr/local/lib에 가지고있다. – edsonlp1

답변

2

사용자의 컴파일 라인은 정적 라이브러리에 연결되어 있으므로 .so (.shared 객체)가 아닌 .a 파일이 필요하다는 것을 의미합니다. 참조 :

Linking to static/dynamic libraries.

어쩌면 도움이되는 정보를 원하시면. 리눅스 지향적이지만, 리눅스와 관련이 없습니다. 컴파일러 플래그가 같을지라도 gcc를 사용하고 llvm을 사용하지 않는다고 가정합니다.

+0

나는 OpenCV를 사용하여 C로 간단한 프로그램을 만들었고, 같은 구성으로 완벽하게 작동한다. 이상합니다. .a 파일을 추가하지 않았습니다. – edsonlp1

+0

ldd가 이진 스패트에 대해 컴파일을 실행하면 바이너리에 연결된 opencv .so 파일이 있다고 가정합니다. – Diziet

관련 문제