Подтвердить что ты не робот

CMake не может найти FFMPEG в пользовательском пути установки

Я компилирую зависимость для проекта на 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...

4b9b3361

Ответ 1

Я понял, как исправить мою проблему, и попытка указать 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, как ожидалось.