加载共享库libSDL-1.2.so.0时出错


18

我正在尝试在ubuntu服务器上安装ioquake。

当我尝试运行它时,出现以下消息:

# ./ioquake3
./ioquake3.x86_64: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory

我以为我一切正常,这是libSDL所在的位置:

# cd /usr/lib64
# /usr/lib64# ls -l
total 2308
lrwxrwxrwx 1 root root      15 Oct 15 00:25 libSDL-1.1.so.0 -> libSDL-1.2.so.0
lrwxrwxrwx 1 root root      20 Oct 15 00:25 libSDL-1.2.so.0 -> libSDL-1.2.so.0.11.4
-rwxr-xr-x 1 root root 2358903 Jan 19  2012 libSDL-1.2.so.0.11.4

而我的道路:

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib64

我究竟做错了什么?


3
我认为这是来自 libSDL 的消息而不是关于libSDL 的消息。运行strace ./ioquake.x86_64。这将显示所有系统调用(占用更多时间执行)。它将显示打开哪个文件的尝试将失败。
1

我安装了跟踪。当我直接运行它时,会得到帮助。当我按照您的建议运行strace ./ioquake.x86_64时,找不到命令。我头疼:(
ErocM 2012年

我安装了strace *
ErocM 2012年

OpenArena常见问题解答中,未安装libSDL时会出现此消息,因此我认为它不是来自此消息。不是最好的主意,但是只是为了确保您已尝试将libSDL-1.2.so.0.11.4重命名为libSDL-1.2.so.0?
NorTicUs 2012年

即使第一个对您有效:也请标记第二个(23个投票)为答案,因为它实际上适合99%的人。
tatsu

Answers:


10

在终端中尝试以下操作:

sudo apt-get update

其次是

sudo apt-get install --reinstall libsdl1.2debian

发布您可能会看到的任何错误消息


27

这为我工作:

sudo apt-get install libsdl1.2debian:i386


1
这是更好的答案,应将其标记为答案。
tatsu

2

我知道这已经晚了一年。但这应该解决它:

dpkg --add-architecture i386
sudo apt-get install libsdl1.2debian

问题是您正在运行为具有64位库的32位体系结构编译的程序。


4
另外一个选择sudo apt-get install libsdl1.2debian:i386
Joril 2014年

1
@Joril我认为您的评论本身应该是一个答案
Alter Lagos

1
sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev

3
您能否提供有关问题所在以及如何运行上述命令来解决该问题的解释?
Mostafa Ahangarha

实际上,用户应用程序使用上述库来将文本或图像转储到SDL窗口中
jagadeesh,2017年

我的意思是在答案中包含解释。但是,我认为这种解释还不够。
Mostafa Ahangarha

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.