![使用 cmake 编译某些内容时如何指定 pkg-config 路径?](https://linux22.com/image/152470/%E4%BD%BF%E7%94%A8%20cmake%20%E7%BC%96%E8%AF%91%E6%9F%90%E4%BA%9B%E5%86%85%E5%AE%B9%E6%97%B6%E5%A6%82%E4%BD%95%E6%8C%87%E5%AE%9A%20pkg-config%20%E8%B7%AF%E5%BE%84%EF%BC%9F.png)
我想在 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/pkgconfig
aom.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
您可以根据需要更改目标文件夹