加载共享库时出错:libopenal.so.1(Ubuntu 14.10中的游戏“ pacapong”)


11

我下载了适用于Linux 的游戏pacapong,并尝试运行可执行文件,这导致错误:

$ ./runner 

./runner: error while loading shared libraries: libopenal.so.1: 
cannot open shared object file: No such file or directory

显然,有必要加载libopenal.so.1

$ objdump -p ./runner |grep libopenal.so.1

NEEDED libopenal.so.1

libopenal.so.1躺在那里/usr/lib/x86_64-linux-gnu,我可以做:

$ ldd libopenal.so.1
linux-vdso.so.1 =>  (0x00007fffcdbbb000)

...

我不会以根用户身份运行此可执行文件(./runner)(以防万一此问题可能与权限不足有关,我不以为然)。

那么,我还能尝试什么呢?

Answers:


12

该错误是因为这是您试图在64位Linux上运行的32位游戏。我通过搜索错误消息来找出我缺少的软件包,从而解决了这些错误。我最终安装了以下软件包来运行游戏:

sudo apt-get install libxxf86vm1:i386 libglu1-mesa:i386 libopenal1:i386 libssl1.0.0:i386

您能否详细说明如何安装这些软件包以及如何解决这些问题?
Michael Lindman

谢谢您的回答,它解决了问题。在那儿您想了解有关该系统的所有信息,好吧,实际上您知道它,但您没有想到它...;)
de-facto

这个。GOG捆绑了与32位Linux链接的游戏(为什么要这么做),因此,如果您拥有64位计算机,则必须同时具有64位和32位版本的OpenGL / etc库。这特别令人困惑,因为它告诉您缺少已知的库。
Katastic Voyage

0

将来,在./runner上运行ldd会告诉您所需的库(如果缺少)以及i386或64位。

./runner上的$ ldd

/ undertale / game $ ldd ./runner

linux-gate.so.1(0xf7798000)

libgtk3-nocsd.so.0 => /usr/lib/i386-linux-gnu/libgtk3-nocsd.so.0(0xf7759000)

libstdc ++。so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6(0xf75d3000)

...

libXrandr.so.2 =>找不到

libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0(0xf6b41000)

libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6(0xf6b3d000)

libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6(0xf6b36000)

请注意,我仍然缺少i386的xrandr。所以这还行不通。

$ ./runner

./runner:加载共享库时出错:> libXrandr.so.2:无法打开共享库文件:没有这样的文件或目录

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.