我正在尝试编译传输模拟Simutrans-扩展版。我在 Focal Fossa 上已经建过很多次了。
今天我尝试在 Kubuntu Jammy Jellyfish 上构建它。构建失败,链接器出现以下错误:
/usr/bin/ld: cannot find -ldrm: No such file or directory
/usr/bin/ld: cannot find -lgbm: No such file or directory
/usr/bin/ld: cannot find -ldecor-0: No such file or directory
安装 libdrm-dev、libgbm-dev 和 libdecor-0-dev 软件包解决了这个问题。但我怀疑这是否是一个打包错误。
这些库不是 Simutrans 的直接依赖项。但是,Ubuntu 的 sdl2-0-0 软件包增加了对 libgbm1、libdrm2 和 libdecor-0-0 的依赖项(比较焦点和杰米依赖项)。 libsdl2-dev 包做不是列出适当开发包的依赖关系。
我注意到 SDL 自己的构建指南列出了这些软件包作为在 Focal Fossa 上构建 SDL2 本身的依赖项自 2021 年 2 月起。
那么我的构建失败是因为 Ubuntu 的 libsdl2-dev 包缺少依赖项吗?如果是这样,那么我想我会将其报告为错误。但我是一名新手程序员,所以我想知道是否有更明显的解释,因为我犯的错误比 Canonical/Debian 包维护者犯的错误更有可能。