自从我在笔记本电脑上安装了 ubuntu 后,我就遇到了问题gstreamer
,这影响了使用它的许多程序,totem、kdenlive
甚至gnome-control-center
,并阻止它们运行。
返回的错误信息是:
totem: symbol lookup error: /lib/x86_64-linux-gnu/libgstaudio-1.0.so.0:
undefined symbol: gst_aggregator_simple_get_next_time
或者
kdenlive: symbol lookup error: /lib/x86_64-linux-gnu/libgstvideo-1.0.so.0:
undefined symbol: gst_aggregator_simple_get_next_time
我看了gstreamer
网站看看是什么类型的错误。到目前为止,我理解.so
文件是收集函数的库,这些函数可以被各种程序调用。GstBase.Aggregator
似乎是一个类,而 simple_get_next_time 是一个返回某个整数的方法。我上次的计算机课程已经过去很久了,但在我看来,这种问题是“结构性的”,我的意思是函数无法识别某些类方法。我尝试重新安装所有gstreamer
程序、插件和其他东西,但问题仍然存在。所以我假设这个类的编码很糟糕。它不成立,因为我看了看,www :
我似乎是唯一一个遇到这个特定问题的人。
问题是:我正在使用全新安装的通用程序,这些程序对每个人都可以正常运行,因此我怎么会遇到这种“结构错误”呢?
我正在运行 Ubuntu 20.04。
apt-cache policy libgstreamer-plugins-base1.0-0
返回:
libgstreamer-plugins-base1.0-0:
Installé : 1.16.2-4
Candidat : 1.16.2-4
Table de version :
1.16.2-4 500
500 http://fr.archive.ubuntu.com/ubuntu focal/main amd64 Packages
100 /var/lib/dpkg/status
ldd /lib/x86_64-linux-gnu/libgstaudio-1.0.so.0 | grep local
返回
libgstbase-1.0.so.0 => /usr/local/lib/libgstbase-1.0.so.0 >(0x00007ff3272d5000)
libgstreamer-1.0.so.0 => /usr/local/lib/libgstreamer-1.0.so.0 >(0x00007ff326fbb000)
和
ldd /lib/x86_64-linux-gnu/libgstvideo-1.0.so.0 | grep local
返回
libgstbase-1.0.so.0 => /usr/local/lib/libgstbase-1.0.so.0 (0x00007f4cc0a04000)
libgstreamer-1.0.so.0 => /usr/local/lib/libgstreamer-1.0.so.0 (0x00007f4cc06ea000)
我非常失望,请帮帮我!祝您有美好的一天。
答案1
由于ldd
输出在 中找到了库/usr/local/lib
,因此这可能是一些自编译的 gstreamer 库的残留。它们可能与系统 gstreamer 库二进制兼容,也可能不兼容,这可能是问题所在。
因此,暂时尝试离开/usr/local/lib
(或/usr/local
完全离开),然后重试:
sudo mv /usr/local/lib /usr/local/lib.old
现在重建链接器缓存以获得更好的效果:
sudo ldconfig
然后现在再次尝试运行这些应用程序。
另外,那条路径/lib/x86_64-linux-gnu/libgstaudio-1.0.so.0
对我来说看起来有点可疑;应该是/usr/lib/x86_64-linux-gnu/libgstaudio-1.0.so.0
。请检查这是否是一个损坏的符号链接:
cd /lib/x86_64-linux-gnu
file * | grep broken
如果没有损坏的符号链接,则输出将为空;否则列出的每行都是损坏的符号链接。
高血压
答案2
感谢您的帮助。我已按照您的指示移动了 /usr/local/lib。应用程序现在可以正常工作了!这两个有问题的库是否对 /usr/local/lib 中无用的库有一些依赖关系?
您关于损坏的符号链接的下一点也是正确的,我已经运行了以下命令:
cd /lib/x86_64-linux-gnu 文件 * | grep broken
返回:
libroken.so.18:指向 libroken.so.18.1.0 的符号链接 libroken.so.18.1.0:ELF 64 位 LSB 共享对象,x86-64,版本 1(SYSV),动态链接,BuildID[sha1]=9eeddc1b0472826f53e5b3f7bd1b72d1fe971659,已剥离
这是一个严重问题吗?我该如何解决?