You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubuntu 21.04编译FFmpeg加--enable-libzmq时找不到libprotokit.a

问题根源
  • 你启用了--pkg-config-flags="--static"参数,pkg-config会返回所有依赖库的静态链接参数
  • libzmq的Requires.private字段依赖norm库,Ubuntu 21.04自带的libnorm-dev包对应的norm.pc配置文件编写不规范:没有用标准的-lprotokit写法,而是直接写死了静态库文件名libprotokit.a,也没有附带库文件所在路径,导致gcc编译测试代码时,只能在当前工作目录查找该文件,无法自动搜索到/usr/lib/x86_64-linux-gnu/下的对应文件
  • 你自定义的PKG_CONFIG_PATH优先读取自己编译的依赖库路径,没有额外添加系统库搜索路径到编译参数里,进一步导致gcc找不到目标文件
解决方法
  • 方法1:修改系统norm.pc配置(最彻底)
    编辑/usr/lib/x86_64-linux-gnu/pkgconfig/norm.pc文件,找到Libs字段,把其中的libprotokit.a替换为-L${libdir} -lprotokit,保存后重新执行configure命令即可。
  • 方法2:新增系统库路径到编译参数(不修改系统文件)
    把configure命令中的--extra-ldflags参数值修改为"-L$HOME/.ffmpeg/build/lib -L/usr/lib/x86_64-linux-gnu",添加系统默认库路径到gcc搜索列表,即可识别到该路径下的libprotokit.a。
  • 方法3:编译自定义libzmq(避免依赖问题)
    手动编译禁用pgm、norm等可选传输协议的libzmq,安装到$HOME/.ffmpeg/build目录下,configure时会优先使用你自定义的无额外依赖的libzmq,不会触发libprotokit相关的查找逻辑。

内容的提问来源于stack exchange,提问作者razvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:18:04