2011-08-25 3 views
1

저는 Ubuntu 11.04에서 C++, OpenCV 2.2 및 g ++를 사용하여 작은 프로젝트를 작성했습니다. 라이브러리 (.so는 더 좋을 것)를 만들 필요가 있지만 OpenCV를 설치하지 않고 다른 컴퓨터에서 실행하고 싶습니다.
g ++ 용 -shared 및 -fPIC 플래그를 사용하여 동적 라이브러리를 작성하려고 시도했으며 OpenCV .so libs를 작업 디렉토리에 복사했습니다. 실제로 코어와 feature2d 만 필요하지만 사실 많은 의존성이있는 highgui를 포함하여 다른 libs를 많이 요청했습니다.
-Wl, -Bstatic 플래그를 사용하여 정적 연결을 시도했지만 실패했습니다. 누군가 동일한 문제가 있었습니까? 나는 어떤 종류의 도움을 주셔서 감사하겠습니다.다른 컴퓨터 (Linux)에서 OpenCV로 C++ 라이브러리를 실행하는 방법은 무엇입니까?

+0

정적 린 highgui는 여러 시스템 라이브러리에 의존하기 때문에 king은 정말 유용하지 않습니다. 카메라 또는 비디오 읽기/쓰기가 필요하지 않으면 대부분의 의존성을 끌 수 있습니다. 이 방법이 효과가 있다면 cmake 명령을 게시하여 비디오 지원없이 OpenCV를 빌드 할 수 있습니다. –

+0

예, 저는이 프로젝트에서 highgui가 전혀 필요하지 않지만 OpenCV 라이브러리 중 하나에서 사용됩니다. 고마워, 나는 너의 해결책을 시도 할 것이다. – Gregory

답변

3

시스템 라이브러리의 종속성없이 OpenCV를 빌드 할 수 있습니다.

cmake -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_EIGEN2=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_OPENEXR=OFF -DWITH_PVAPI=OFF -DWITH_QT=OFF -DWITH_TBB=OFF -DWITH_UNICAP=OFF -DWITH_V4L=OFF -DWITH_XINE=OFF -DUSE_IPP=OFF -DOPENCV_BUILD_3RDPARTY_LIBS=ON .. 

을하지만이 경우에 당신은 형성 highgui 모듈의 많은 기능을 사용할 수 없습니다 : : 리눅스에서 OpenCV의 2.2에 대한 모든 종속성 설정하려면 다음 인수로 cmake를 실행할 수 있습니다

  • 을 카메라와 함께 GUI 작업
  • 모든 기능을 작동 비디오 읽기와 쓰기
  • (같은 imshow)
+0

'cv :: imencode'와'cv :: imdecode'도'highgui'에있는 것으로 보입니다. –

+0

실제로 많은 형식의 시스템 라이브러리 없이도 작업 할 수 있습니다. –

관련 문제