pkg-config 找不到库的自定义构建

pkg-config cannot find a customized build of a library

我一周前通过 apt 安装了 ffmpeg4.2。该库安装在 /usr/lib/x86_64-linux-gnu 下。然后我意识到我想在ffmpeg4.5中测试我的代码,所以我从源代码构建它并将它安装在/home/xxx/ffmpeg_build/lib下。我也做了 export PKG_CONFIG_PATH=/home/xxx/ffmpeg_build/lib/pkgconfig:$PKG_CONFIG_PATH.

但是,pkg-config 找不到我希望它看到的ffmpeg4.5。所以我用 pkg-config --variable=pc_path pkg-config 检查了 pc_path 变量,它给了我 /usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig.

我猜测 pkg-config 会去 /usr/local 寻找 *.pc 文件,因此忽略我的自定义构建。有没有办法可以在前面附加我自定义的路径,这样 pkg-config 就可以找到我首先从源代码构建的 ffmpeg4.5?

编辑: 我只记得 pkg-config 一开始可以正确地找到我从源代码构建的 ffmpeg4.5,但是我对 OpenCV 设置做了 ldconfig -v,然后它停止工作了。

将您的自定义库添加到动态链接器搜索路径。

1.) 添加一个新的配置文件

/etc/ld.so.conf.d/customlib.conf

2.) 插入:(假设你的lib在目录/usr/local/ffmpeg45/lib

/usr/local/ffmpeg45/lib

3.) 运行

ldconfig -v 2>&1|grep -iv ffmpeg

应该可以

我最后的解决方法是手动将 *.pc 文件中的所有配置解码为 g++ 命令。这绝对不理想,但对于我正在从事的一个小项目来说,它满足了我的需要