![Jedi Academy (OpenJK) 无法正确加载 SDL2](https://linux22.com/image/852005/Jedi%20Academy%20(OpenJK)%20%E6%97%A0%E6%B3%95%E6%AD%A3%E7%A1%AE%E5%8A%A0%E8%BD%BD%20SDL2.png)
因此,我尝试在运行 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 帮我完成了这项工作。