2011-03-30 7 views
11

우분투 10.10에서 프로젝트에 대한 종속성을 컴파일하고/usr/local에 기본적으로 설치하지 않고 대신/tmp/stage/usr/local. CMake에게이 프로젝트에 대한 빌드 파일을 생성하기 위해 호출 할 때이 커스텀 인스톨 의존성의 위치를 ​​알려주는 방법.CMake가 사용자 정의 설치 경로에서 FFMPEG를 찾을 수 없습니다

내가 CMake 2.8.1 실행하고, 나는 그렇게

cmake -D CMAKE_PREFIX_PATH=/tmp/stage/usr/local 

처럼 cmake 명령 행에 CMAKE_PREFIX_PATH을 설정하기 위해 시도했지만이 변화를하지 않는 것 -이 프로젝트는하지 않습니다 의존성을 감지하는 것 같습니다. 이 중요한 경우

또한,

+0

나는이 질문에 혼란 스럽다. FFmpeg를/tmp/stage/usr/local에 설치했고 그 FFMPEG에 대해 opencv를 만들려고한다고 말하는가? 또는/tmp/stage/usr/local에 cmake를 설치하려고합니까? – ltc

+0

FFMPEG는/tmp/stage/usr/local에 설치되어 있으며 해당 FFMPEG에 대한 OpenCV를 구축하려고합니다. 예 ... – hatboyzero

답변

19

나는 내 문제를 해결하고, 설치 적합한에서 CMake를 가리 키도록 노력하는 방법을 알아 냈 ... 문제의 프로젝트는 OpenCV의 2.2이며, 문제의 종속성 FFMPEG입니다 위치는 문제가 아닙니다.

분명히 CMake는 FFMPEG 헤더와 라이브러리의 위치를 ​​알려주는 FFMPEG (즉, libavcodec.pc, libavdevice.pc 등)에 대한 pkg-config 파일을 찾을 수 없습니다. 일반적인 설치 시나리오에서 이러한 파일은/usr/lib/pkgconfig에 있습니다. 그러나 사용자 정의 설치 위치 때문에/tmp/stage/usr/local/lib/pkgconfig에 위치합니다. 예상대로

export PKG_CONFIG_PATH=/tmp/stage/usr/local/lib/pkgconfig 

하는 시점 후, OpenCV의이 FFMPEG에 대해 내장 :

그래서 CMake 이러한 파일을 찾을 수 있다고, 나는 다음과 같은 환경 변수를 추가했다.

+1

원래 질문과 동일한 문제가있는 것 같지만 CentOS 6.5를 사용하고 있습니다. OpenCV가 실패한 후, $ PKG_CONFIG_PATH 변수가/usr/lib/pkgconfig로 설정되었고 그 디렉토리에는 zlib.pc 파일 만 포함되어 있습니다. 정상입니까? 나는 ffmpeg를 설치했고 opencv는 opencv_perf_video를 링크하는 동안 불평을 털어 놨다. ffmpeg 소스 아래에있는 'avformat_network_init'에 대한 정의되지 않은 참조가있다. ffmpeg가 어디에 설치되어 있는지 모르겠다. (접두사 =/usr/local를 보여 주려고했지만 거기에서 찾지 못했다.) –

+0

변수가 bash 스크립트를 통해 또는 터미널에서 수동으로 설정되었다고 가정한다. 아시나요, 어떻게 이것을 cmake에서 직접 설정할 수 있습니까? 내가 세트 (ENV {PKG_CONFIG_PATH} "$ {PROJECT_SOURCE_DIR}/libs/ffmpeg/build/lib/pkgconfig")를 시도했지만 PKG_CONFIG_PATH를 어떻게 든 내보낼 수 없으므로 빌드가 실패합니다. – infoclogged

관련 문제