CMake在自定义安装路径中找不到FFMPEG

hat*_*ero 11 opencv ffmpeg cmake

我正在为Ubuntu 10.10上的项目编译依赖项,而不是默认安装到/ usr/local,而是将其安装到/ tmp/stage/usr/local.当我调用它来生成所述项目的构建文件时,如何通知CMake这个自定义安装依赖项的位置.

我正在运行CMake 2.8.1,我试图在cmake命令行上设置CMAKE_PREFIX_PATH,就像这样

cmake -D CMAKE_PREFIX_PATH=/tmp/stage/usr/local
Run Code Online (Sandbox Code Playgroud)

但这似乎没有什么区别 - 项目似乎没有检测到依赖性.

此外,如果重要,有问题的项目是OpenCV 2.2,有问题的依赖是FFMPEG ......

hat*_*ero 21

我想出了如何解决我的问题,并试图在适当的安装位置指向CMake不是问题.

显然,CMake无法找到FFMPEG的pkg-config文件(即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
Run Code Online (Sandbox Code Playgroud)

在此之后,OpenCV按照预期对FFMPEG构建.