CMake не может найти FFMPEG в пользовательском пути установки - PullRequest
11 голосов
/ 31 марта 2011

Я компилирую зависимость для проекта в Ubuntu 10.10, и вместо того, чтобы установить его в / usr / local по умолчанию, я вместо этого устанавливаю его в / tmp / stage / usr / local. Как мне сообщить CMake о расположении этой пользовательской зависимости, когда я ее вызываю, чтобы сгенерировать файлы сборки для указанного проекта.

Я использую CMake 2.8.1, и я попытался установить CMAKE_PREFIX_PATH в командной строке cmake, например

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

но это, похоже, не имеет значения - проект, похоже, не обнаруживает зависимость.

Кроме того, если это имеет значение, рассматриваемый проект - OpenCV 2.2, а рассматриваемая зависимость - FFMPEG ...

1 Ответ

20 голосов
/ 06 апреля 2011

Я выяснил, как решить мою проблему, и попытка указать CMake в соответствующем месте установки не является проблемой.

Очевидно, CMake не может найти файлы pkg-config для FFMPEG (т.е.libavcodec.pc, libavdevice.pc и т. д.), которые сообщают ему, где расположены заголовки и библиотеки FFMPEG.В типичном сценарии установки эти файлы будут расположены в / usr / lib / pkgconfig.Однако из-за пользовательского места установки они вместо этого расположены в /tmp/stage/usr/local/lib/pkgconfig.

Чтобы CMake мог найти эти файлы, мне пришлось добавить следующую переменную среды:

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

После чего OpenCV строится против FFMPEG, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...