ffmpeg:符号查找错误(Linux mint MATE 21.1,内核 6.1.0-1010-oem)

ffmpeg:符号查找错误(Linux mint MATE 21.1,内核 6.1.0-1010-oem)

我目前正在努力让 ffmpeg 再次工作,它削弱了我使用不和谐或在 Firefox 中观看 mp4 的能力。

尝试在控制台中使用 ffmpeg 返回:

cla@CLAX1:~$ ffmpeg
ffmpeg: symbol lookup error: /lib/x86_64-linux-gnu/libva-x11.so.2: undefined symbol: va_fool_postp

和不和谐:

la@CLAX1:~$ discord
discord: error while loading shared libraries: libffmpeg.so: cannot open shared object file: No such file or directory

我已经搜索了很多天寻找可能的解决方案,但无济于事。通常建议安装 libva-x11-2:i386 但这也没有成功。有人建议扰乱系统链接,但这暂时使事情变得更糟。

我想提前感谢您的任何建议。

答案1

我也遇到过同样的问题ffmpeg,这对我有用:

cd /lib/x86_64-linux-gnu/
ln -sf libva.so.2.1400.0 libva.so.2

这会更改符号链接libva.so.2目标libva 2.14,这是该库的旧版本libva


以下是我如何找到此解决方案的描述,以防您的系统需要稍微不同的解决方案,并且您想知道如何找到有效的解决方案。

首先我们要知道这个错误是什么意思:

symbol lookup error: /lib/x86_64-linux-gnu/libva-x11.so.2: undefined symbol: va_fool_postp

这意味着库libva-x11.so.2正在尝试引用名为 的符号(函数或变量)va_fool_postp,但该符号未在库本身或其任何依赖项中定义。

检查libva Github 存储库搜索“va_fool_postp”发现它在2.15.0 版本va_fool中被删除。libva这可能意味着安装的libva-x11.so.2库依赖于libva2.15.0 之前的版本。

下一步是检查已安装的版本libva-x11.so.2libva2软件包。就我而言,apt-cache policy <package>在两个包上运行都会显示两个包的版本2.14.0-1。这意味着va_fool就是应该可以在图书馆使用libva2,但不是。

检查库所在的目录,/lib/x86_64-linux-gnu/显示计算机上安装的库。就我而言,该库有两个版本libva2libva.so.2.1400.0、 和libva.so.2.2200.0。到库 的链接libva.so.2将其目标设置为库的较新版本libva.so.2.2200.0。这可能是由另一个程序引起的,并在两个版本之间造成了冲突。可以通过执行已经提到的命令来恢复此更改:

ln -sf libva.so.2.1400.0 libva.so.2

相关内容