Jedi Academy (OpenJK) 无法正确加载 SDL2

Jedi Academy (OpenJK) 无法正确加载 SDL2

因此,我尝试在运行 Ubuntu 13.10 的笔记本电脑上安装《星球大战绝地武士绝地学院》。您可能知道也可能不知道,这款游戏相当老了,其创建者 LucasArts 只制作了 Mac 和 Windows 版本。然而,幸运的是,几年前游戏的源代码被发布,OpenJk 项目诞生了。本质上,他们正在重写游戏代码,并使其能够在 Linux 上玩游戏,无需 Wine,就像在其他操作系统上一样流畅。

链接到GitHub页。

编译和所有工作都运行得非常顺利,据我所知,OpenJK 没有任何问题,而且我认识一些在 Linux 中使用它的人,我的问题似乎是 SDL2。或者更确切地说,我显然缺乏它。

当我尝试执行应该启动游戏的文件时,出现此错误:

./openjk.x86_64: error while loading shared libraries: libSDL2.so.0: cannot open shared object file: No such file or directory

嗯,据我所知,我确实有 SDL2,并且已经完成了以下操作:

sudo apt-get install libsdl2-2.0-0

和这个

sudo apt-get install libsdl2-dev

此外,我访问了几个提供安装指南的网站,并安装了大量 SDL2 依赖项。因此,我假设我已安装所有依赖项。如果您认为您可能找到了我尚未找到的列表,请随时将其发布在下面供我尝试。

在我继续发布这个问题之前,作为最后一步,我从网站,提取文件并运行:

./autogen.sh
./configure; make; sudo make install

安装成功了,所以当我运行

sudo ldconfig

但绝地学院文件仍然返回相同的错误。

不幸的是,我拥有的 SDL2 似乎不足以满足绝地学院的要求,因此对我来说也不够好 ):

有人知道这里问题的根源是什么吗?是 OpenJK 的问题,还是 SDL2 的问题,或者我是否需要获取其他版本?任何想法或帮助都将不胜感激,因为我不知所措。

答案1

这不是正确的方法,但没有其他答案,而且这对我有用。我在定位 SDL 库时总是遇到类似的问题。它帮助我找出库安装在哪里。

上次我安装时libsdl2-dev,apt-get 说(在 /var/lib/dpkg/info/libsdl2-dev.list 中)*.so 在哪里:

/usr/lib/x86_64-linux-gnu/libSDL2.so
/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so

通常,使用 SDL 的程序会在/usr/lib/或中搜索/usr/local/lib/,因此您可以尝试将其复制到这些路径中并将其重命名为libSDL2.so.0,这是 openjk 找不到的名称。

或者符号链接:

ln -s /usr/lib/x86_64-linux-gnu/libSDL2.so /usr/lib/libSDL2.so.0
ln -s /usr/lib/x86_64-linux-gnu/libSDL2.so /usr/local/lib/libSDL2.so.0

答案2

我不知道这个问题是否已经解决,但今天我又遇到了同样的问题。原来,出于某种原因,MBII 启动器需要 32 位 SDL2 库,所以 apt-get install libsdl-2.0-0:i386 帮我完成了这项工作。

相关内容