Steam:加载共享库时出错:libGL.so.1:错误的 ELF 类:ELFCLASS64

Steam:加载共享库时出错:libGL.so.1:错误的 ELF 类:ELFCLASS64

安装 Nvidia 驱动程序后,当我尝试运行 Steam 时出现此错误:

steam: error while loading shared libraries: libGL.so.1: wrong ELF class: ELFCLASS64

我发现问题和建议安装的答案之一:

sudo apt-get install libgl1-mesa-glx:i386

我已经安装了libgl1-mesa-glx:i386。然后我发现。它建议创建一个指向 32 位 libGL 的符号链接。该怎么做?您还有其他建议吗?

答案1

64 位系统上出现此问题是由于版本早于 而导致的。Steam/usr/lib尝试了 64 位库并发出抱怨,没有进一步研究。LD_LIBRARY_PATH/usr/lib32

然而,它可以通过修复,~/Steam/steam.sh但每次运行 steam 时该文件似乎都会恢复到原始版本。

我通过创建执行以下操作的脚本来修复此问题:

#!/bin/bash
export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH
steam $*

这会添加/usr/lib32到库路径的前面,然后启动 steam(使用脚本的原始参数)。现在/usr/lib32在 之前的路径中找到/usr/lib,并且 steam 将成功使用 32 位库。

您可能还想添加以下行

export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH

/usr/bin/steam,只要将其添加到最后一行之前,就会产生相同的效果。您需要使用 sudo 来编辑/usr/lib/steam

  • 这有额外的好处,即它是一个更好的解决方案,因为启动 steam 的所有内容(应用程序菜单项、文件类型关联、URI 关联)都可以正常工作。
  • 缺点是/usr/bin/steamsteam更新时可能会被覆盖。

我使用后一种方法,同时保留脚本作为备份。这样,如果脚本/usr/bin/steam被覆盖,我只需从脚本中再次复制粘贴该行即可修复。

答案2

/usr/lib32通过添加新文件,在 raring ringtail(xubuntu 13.04)中使用 nVidia 319.17 驱动程序修复了这个问题:

$ sudo nano /etc/ld.so.conf.d/lib32.conf

然后运行:

$ sudo ldconfig 

由于该文件/etc/ld.so.conf包含include /etc/ld.so.conf.d/*.conf,因此该目录中任何带有扩展名的文件.conf都会被解析。

答案3

从:https://github.com/ValveSoftware/steam-for-linux/issues/321

我遇到了同样的问题并通过以下方式解决了:

$ cd ~/.steam/bin
$ ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 .

这对我也有用。

答案4

针对 Mint 14 修复了此问题,安装了最新的 64 位 Nvidia 驱动程序 310.32,并安装了 32 位驱动程序支持

/emul/ia32-linux/usr/lib 

通过增加

export LD_LIBRARY_PATH=/emul/ia32-linux/usr/lib:$LD_LIBRARY_PATH 

"export"在文件开头的第一个之后/usr/bin/steam

相关内容