2011-03-30 13 views
11

Sto compilando una dipendenza per un progetto su Ubuntu 10.10 e invece di installarlo su/usr/local per impostazione predefinita, lo sto invece installando in/tmp/stage/usr/local. Come faccio a informare CMake dell'ubicazione di questa dipendenza installata personalizzata quando la chiamo per generare i file di costruzione per il suddetto progetto.CMake non trova FFMPEG nel percorso di installazione personalizzato

Sono in esecuzione CMake 2.8.1, e ho cercato di impostare CMAKE_PREFIX_PATH sulla riga di comando CMake, in questo modo

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

ma questo non sembra fare la differenza - il progetto non lo fa sembra rilevare la dipendenza.

Inoltre, se è importante, il progetto in questione è OpenCV 2.2, e la dipendenza in questione è FFMPEG ...

+0

Sono confuso da questa domanda, stai dicendo che hai FFMPEG installato in/tmp/stage/usr/local e stai provando a creare opencv contro quel FFMPEG? O stai cercando di installare qualcosa con cmake in/tmp/stage/usr/local? – ltc

+0

FFMPEG è installato in/tmp/stage/usr/local e sto cercando di creare OpenCV contro FFMPEG, sì ... – hatboyzero

risposta

19

ho capito come risolvere il mio problema, e cercando di puntare CMake alla appropriata installazione la posizione non è il problema.

Apparentemente, CMake non è in grado di trovare i file pkg-config per FFMPEG (ad esempio libavcodec.pc, libavdevice.pc, ecc.) Che indicano dove si trovano le intestazioni e le librerie FFMPEG. In uno scenario di installazione tipico, questi file si trovano in/usr/lib/pkgconfig. Tuttavia, a causa della posizione di installazione personalizzata, si trovano invece in/tmp/stage/usr/local/lib/pkgconfig.

In modo che CMake riusciva a trovare questi file, ho dovuto aggiungere la seguente variabile d'ambiente:

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

Dopo quel punto, OpenCV costruito contro FFMPEG come previsto.

+1

Mi sembra che abbia lo stesso problema della domanda originale, ma sto usando CentOS 6.5. dopo che OpenCV ha esito negativo, vedo la variabile $ PKG_CONFIG_PATH impostata su/usr/lib/pkgconfig e quella directory contiene solo il file zlib.pc. È normale? Ho installato ffmpeg e opencv build complains durante il collegamento di opencv_perf_video, che ha un riferimento non definito a 'avformat_network_init' che si trova sotto ffmpeg source. Non so dove è installato ffmpeg (ho provato a dare il prefisso =/usr/local ma non riesco a trovarlo lì) –

+0

Suppongo che la variabile sia stata impostata tramite uno script bash o manualmente nel terminale. Sai, come puoi impostare direttamente da cmake? Ho provato set (ENV {PKG_CONFIG_PATH} "$ {PROJECT_SOURCE_DIR}/libs/ffmpeg/build/lib/pkgconfig"), ma in qualche modo non esporta PKG_CONFIG_PATH e quindi la compilazione fallisce. – infoclogged

Problemi correlati