安装Dwarf-Fortress时出现问题,找不到libSDL_ttf-2.0.so.0。

当我运行./df时,我得到了这个错误:
./libs/Dwarf_Fortress: error while loading shared libraries: libSDL_ttf-2.0.so.0: cannot open shared object file: No such file or directory

所以我尝试通过运行以下命令来安装那个库:
sudo apt-get install libsdl-ttf2.0-0:i386

但它已经安装好了。
libsdl-ttf2.0-0:i386 is already the newest version

我随后四处搜索并运行了这个代码:
$ ldd ~/df_linux/libs/Dwarf_Fortress

我使用了很多库,我认为我找到了问题所在,它是由这行代码引起的:
libSDL_ttf-2.0.so.0 => not found

我找不到更多的信息了,我迷失了。我应该怎么办?

在目录中找到以“libSDL_ttf_2.0.so”开头的文件。然后创建一个名为“libSDL_ttf-2.0.so.0”的符号链接指向该文件。 - Jos
我运行了这个命令:sudo find / -type f -name "libSDL_ttf_2.0.so*",试图找到它,但没有成功。 - Diogo Meneses
我注意到Dwarf Fortress期望一个名为libSDL_xxx的文件,而实际的包名是libsdl_xxx(小写)。尝试找到一个小写的文件并创建一个大写的链接指向它? - Jos
好的,我通过使用小写字母和破折号代替下划线找到了几个选项。我不知道该选择哪一个,也不知道如何创建符号链接。你说“在目录中”,你指的是哪一个? - Diogo Meneses
你可以在找到lib文件的目录中创建一个链接,使用sudo ln -s [目标文件] libSDL_ttf-2.0.so.0。我想一个一个尝试它们应该没有什么坏处。 - Jos
但是这样符号链接会如何连接到矮人要塞呢?例如,我有这个路径/usr/share/lintian/overrides/libsdl-ttf2.0-0,我运行"sudo ln -s /usr/share/lintian/overrides/libsdl-ttf2.0-0 libSDL_ttf-2.0.so.0"?当我运行游戏时,它会搜索符号链接并找到它吗? - Diogo Meneses
是的,显然正在寻找一个名为libSDL_ttf-2.0.so.0的文件。目前并不存在这样的文件。当您创建一个以该名称链接到确实存在的文件时,DF将使用该文件。 - Jos
没起作用 :/ 仍然出现相同的错误 - Diogo Meneses
如何验证符号链接是否正确创建?它会创建一个文件吗? - Diogo Meneses
是的,它创建了一个文件,aff,但还是没有运气。 - Diogo Meneses
1个回答

你是否正在尝试运行最新版本的Dwarf Fortress(0.43.05)?我之前也遇到了和你一样的问题。我创建了一个软链接到libSDL_ttf-2.0.so.0,但是它没有起作用,因为它在寻找一个64位的文件。
尝试安装64位版本代替:
sudo apt-get install libSDL-ttf2.0-0
你应该能在x86_64-linux-gnu目录中看到这个文件。在我安装后,游戏成功运行了。