使用 cmake 编译某些内容时如何指定 pkg-config 路径?

使用 cmake 编译某些内容时如何指定 pkg-config 路径?

我想在 CentOS 7 上构建支持 av1 编解码器的 ffmpeg。我首先按照说明进行操作这里:

git clone https://aomedia.googlesource.com/aom
mkdir aom_build
cd aom_build
cmake ../aom
make
sudo make install

这会将文件写入/usr/local/lib64/pkgconfig/aom.pc.当我后来克隆 ffmpeg 的 git repo 并尝试运行时./configure --enable-libaom ...,它抱怨 pkg-config 找不到 aom.pc 文件。

这是因为如果我运行pkg-config --variable pc_path pkg-config,我可以看到 pkg-config 仅在此处检查:

/usr/lib64/pkgconfig:/usr/share/pkgconfig

它不会查找/usr/local/lib64/pkgconfigaom.pc 所在的位置。到目前为止,我想出的唯一修复方法是在 ffmpeg 的 git 目录中运行它:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH/usr/local/lib64/pkgconfig: ./configure --enable-libaom ...

这是可行的,但我宁愿告诉 libaom 首先将 aom.pc 写入 /usr/lib64/pkgconfig 。

在构建 aom 时,有什么方法可以告诉 cmake 或 make 将 aom.pc 文件写入 /usr/lib64/pkgconfig 而不是 /usr/local/lib64/pkgconfig 吗?

在其他有./configure步骤的项目中,我发现可以使用 来指定它./configure --pkgconfigdir=/usr/lib64/pkgconfig,但是 aom 项目没有脚本./configure,所以我不确定在这里要做什么。

答案1

您希望cmake为 libaom 运行自定义,如下所示:

cmake .. -DCMAKE_INSTALL_PREFIX="./extra_ff_mods" -DCMAKE_INSTALL_LIBDIR=lib
make
make install

这会将文件放置在名为 的文件夹中extra_ff_mods,该文件夹将包含以下子文件夹:

- include
|
- lib
  |
   - pkgconfig

您可以根据需要更改目标文件夹

相关内容