CentOS 7.9编译FFmpeg遇libwebp相关隐式声明报错如何解决
报错原因
你使用的CentOS 7.9官方YUM源提供的libwebp版本为0.3.0,版本过旧,缺少新版FFmpeg调用的libwebp_error_to_averror接口函数。当你编译4.4及以上版本的FFmpeg时,就会出现该隐式函数声明的报错。
修复方案
你可以任选以下两种方案之一解决问题:
- 方案一:降级FFmpeg版本
选择4.3.x及更早的FFmpeg版本进行编译,旧版FFmpeg的libwebp适配逻辑兼容CentOS 7源提供的低版本libwebp,不需要调用缺失的新接口。 - 方案二:手动编译安装高版本libwebp
- 先卸载系统原有的低版本libwebp:
yum remove -y libwebp libwebp-devel- 下载libwebp官方稳定版源码,解压后进入源码目录执行以下命令编译安装:
./configure --prefix=/usr/local --enable-shared --enable-static make -j$(nproc) make install- 配置系统库路径让系统识别新安装的libwebp:
echo "/usr/local/lib" > /etc/ld.so.conf.d/libwebp.conf ldconfig- 重新执行FFmpeg的configure配置,可额外添加参数指定libwebp的路径避免识别到旧版本:
配置完成后重新执行./configure 【你的原有编译参数】 --enable-libwebp --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib"make编译即可。
内容的提问来源于stack exchange,提问作者fvid1
相关产品推荐
相关产品推荐

