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

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

我下载了游戏帕卡蓬对于 Linux 并尝试运行可执行文件,结果出现错误:

$ ./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)

...

我不会以 root 身份运行该可执行文件 (./runner)(以防万一该问题可能与权限不足有关,但我没有假设)。

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

答案1

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

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

答案2

将来,在 ./runner 上运行 ldd 将会告诉您它所需的库、是否缺失以及它们是 i386 还是 64 位。

$ ldd 在 ./runner 上

/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:无法打开共享对象文件:没有此文件或目录

答案3

使用apt-file工具查找哪个包提供了所需的库。如果你没有搜索工具,请先安装它

sudo apt-get install apt-file

如果这是你第一次使用apt-file工具,则必须先更新缓存

apt-file update # it may require root privileges. If so just use sudo

现在搜索图书馆:

apt-file search libXrandr.so.2
libxrandr2: /usr/lib/x86_64-linux-gnu/libXrandr.so.2
libxrandr2: /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0

现在安装你需要的 32 位软件包

sudo apt-get install libxrandr2:i386

相关内容