【问题标题】:CMake can't find FFMPEG in custom install pathCMake 在自定义安装路径中找不到 FFMPEG
【发布时间】:2011-07-26 11:04:55
【问题描述】:

我正在为 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

但这似乎没有什么不同 - 项目似乎没有检测到依赖关系。

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

【问题讨论】:

  • 我对这个问题感到困惑,您是说您在 /tmp/stage/usr/local 中安装了 FFMPEG 并且您正在尝试针对该 FFMPEG 构建 opencv?或者您是否尝试在 /tmp/stage/usr/local 中使用 cmake 安装一些东西?
  • FFMPEG 安装在 /tmp/stage/usr/local 中,我正在尝试针对该 FFMPEG 构建 OpenCV,是的...

标签: opencv ffmpeg cmake


【解决方案1】:

我想出了如何解决我的问题,尝试将 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

在那之后,OpenCV 按预期构建了 FFMPEG。

【讨论】:

  • 我的问题似乎和原来的问题一样,但我使用的是 CentOS 6.5。在 OpenCV 失败后,我看到 $PKG_CONFIG_PATH 变量设置为 /usr/lib/pkgconfig 并且该目录只包含 zlib.pc 文件。正常吗?我在链接 opencv_perf_video 时安装了 ffmpeg 和 opencv build 抱怨,它对 ffmpeg 源代码下的 'avformat_network_init' 有未定义的引用。我不知道 ffmpeg 安装在哪里(我尝试给出 prefix=/usr/local 但在那里找不到)
  • 我认为该变量是通过 bash 脚本或在终端中手动设置的。你知道吗,你怎么能直接从 cmake 设置呢?我尝试了 set( ENV{PKG_CONFIG_PATH} "${PROJECT_SOURCE_DIR}/libs/ffmpeg/build/lib/pkgconfig" ),但它以某种方式没有导出 PKG_CONFIG_PATH,因此构建失败。
猜你喜欢
  • 1970-01-01
  • 2019-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
  • 2014-05-06
相关资源
最近更新 更多