我一周前通过
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.) 添加新的conf文件
/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++ 命令。这绝对不理想,但对于我正在从事的一个小项目来说,它满足了我的需要
生成的信息不正确后pkg配置无法安装,请尽快解决此问题。
问候, 马哈迈杜拉