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++ 命令。这绝对不理想,但对于我正在从事的一个小项目来说,它满足了我的需要
我一周前通过 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++ 命令。这绝对不理想,但对于我正在从事的一个小项目来说,它满足了我的需要