2011-03-30 19 views
11

Ubuntu 10.10 üzerinde bir projeye bağımlılık yapıyorum ve varsayılan olarak/usr/local dosyasına yüklemek yerine, onu/tmp/stage/dizinine yüklüyorum yerel/usr. Söz konusu proje için derleme dosyaları oluşturmak için bunu çağırdığımda CMake'i bu özel yüklü bağımlılığın yerini bildirmek için nasıl giderim.CMake, özel yükleme yolunda FFMPEG'yi bulamıyor

Ben CKağıt 2.8.1 çalıştırıyorum ve bunu

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

gibi, cmake komut satırında CMAKE_PREFIX_PATH belirtmeye çalıştığımız ama bu bir fark yaratmak için görünmüyor - Proje yapmaz bağımlılığı tespit ediyor gibi görünüyor. Bu konularda

Ayrıca,

+0

Bu soru ile kafam karıştı, FFMPEG'in/tmp/stage/usr/local dizininde kurulu olduğunu ve bu FFMPEG'ye karşı opencv oluşturmaya çalıştığınızı mı söylüyorsunuz? Yoksa cmake in/tmp/stage/usr/local ile bir şeyler kurmaya mı çalışıyorsunuz? – ltc

+0

FFMPEG/tmp/stage/usr/local uygulamasında yüklüdür ve bu FFMPEG'e karşı OpenCV oluşturmaya çalışıyorum, evet ... – hatboyzero

cevap

19

benim sorunu çözmek ve yüklemek uygun olarak CMake işaret çalışırken nasıl anladım ... Söz konusu proje OpenCV 2.2 olduğunu ve söz konusu bağımlılık FFMPEG olduğunu konum sorun değil.

Görünüşe göre, CMake, FFMPEG başlıklarının ve kitaplıklarının bulunduğu yeri belirten FFMPEG (yani libavcodec.pc, libavdevice.pc, vb.) Için pkg-config dosyalarını bulamıyor. Tipik bir kurulum senaryosunda, bu dosyalar/usr/lib/pkgconfig dizininde bulunur. Ancak, özel yükleme konumu nedeniyle, bunlar/tmp/stage/usr/local/lib/pkgconfig dizininde bulunur. beklendiği gibi

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

bu noktada sonra OpenCV FFMPEG karşı yerleşik:

Yani CKağıt bu dosyaları bulabiliriz, ben aşağıdaki ortam değişken eklemek zorunda kaldı.

+1

Orijinal soruyla aynı sorunu yaşıyorum gibi görünüyor, ancak CentOS 6.5 kullanıyorum. OpenCV başarısız olduktan sonra,/usr/lib/pkgconfig için ayarlanmış $ PKG_CONFIG_PATH değişkenini görüyorum ve bu dizin sadece zlib.pc dosyası içeriyor. Bu normal mi? Ffmpeg ve opencv kurmak için opencv_perf_video bağlantısını kurarken, ffmpeg kaynağında bulunan 'avformat_network_init' dosyasına tanımlanmamış bir referans olduğunu öğrendim. Ffmpeg'in nereye kurulduğunu bilmiyorum (önek =/usr/local vermeyi denedim ama orada bulamadım) –

+0

Değişkenin bir bash komut dosyasıyla veya terminalde manuel olarak ayarlandığını varsayalım. Biliyor musun, bunu doğrudan cmake'den nasıl ayarlayabilirsin? Set (ENV {PKG_CONFIG_PATH} "$ {PROJECT_SOURCE_DIR}/libs/ffmpeg/build/lib/pkgconfig") kullanmayı denedim, ancak bir şekilde PKG_CONFIG_PATH'yi dışa aktarmıyor ve dolayısıyla yapı başarısız oluyor. – infoclogged