2011-03-30 81 views
11

我正在爲Ubuntu 10.10上的項目編譯依賴項,而不是將其安裝到/ usr/local默認情況下,而是將其安裝到/ tmp/stage/USR /本地。當我調用它來生成所述項目的構建文件時,如何通知CMake這個定製安裝依賴項的位置。CMake無法在自定義安裝路徑中找到FFMPEG

我運行CMake的2.8.1,和我試圖設置CMAKE_PREFIX_PATH CMake的命令行上,像這樣

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

,但這似乎並沒有發揮作用 - 該項目不似乎檢測到依賴。

而且,如果它的事項,有關項目是OpenCV的2.2,並且有問題的依賴是FFMPEG ...

+0

我對這個問題感到困惑,你是說你已經在/ tmp/stage/usr/local中安裝了FFMPEG,並且你正在嘗試構建針對該FFMPEG的opencv?或者你是否試圖在/ tmp/stage/usr/local中使用cmake安裝某些東西? – ltc 2011-04-01 00:28:55

+0

FFMPEG安裝在/ tmp/stage/usr/local中,我正在嘗試構建針對該FFMPEG的OpenCV,是的... – hatboyzero 2011-04-06 13:54:23

回答

19

我想出如何解決我的問題,並試圖在適當的點安裝的CMake位置不是問題。

顯然,CMake無法找到FFMPEG(即libavcodec.pc,libavdevice.pc等)的pkg-config文件,它告訴它FFMPEG頭和庫位於何處。在典型的安裝場景中,這些文件位於/ usr/lib/pkgconfig。但是由於定製安裝位置,它們位於/ tmp/stage/usr/local/lib/pkgconfig中。

這樣的CMake可以找到這些文件,我不得不添加以下環境變量:

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

後點,OpenCV的建成對FFMPEG預期。

+1

我似乎與原始問題具有相同的問題,但我使用的是CentOS 6.5。在OpenCV失敗後,我將$ PKG_CONFIG_PATH變量設置爲/ usr/lib/pkgconfig,該目錄僅包含zlib.pc文件。這是正常的嗎?我在鏈接opencv_perf_video時安裝了ffmpeg和opencv build抱怨,它具有在ffmpeg源代碼下找到的'avformat_network_init'的未定義引用。我不知道在哪裏安裝了ffmpeg(我試過給前綴=/usr/local,但在那裏找不到它) – 2014-12-02 03:53:51

+0

我認爲變量是通過bash腳本設置的,或者是在終端中手動設置的。你知道嗎,你如何直接從cmake中設置?我嘗試設置(ENV {PKG_CONFIG_PATH}「$ {PROJECT_SOURCE_DIR}/libs/ffmpeg/build/lib/pkgconfig」),但它不會導出PKG_CONFIG_PATH,因此構建失敗。 – infoclogged 2016-06-04 15:27:15