Race 的源代码可以自己编译吗?需要哪些依赖?

可以下载到源代码,但官方明确不提供编译协助,也不建议普通用户尝试。Race 是一个已停止开发的 GNU/Linux 俯视 3D 赛车游戏,作者 Harry Storbacka 在 2006 年宣布项目终止,不再发布新版本。源代码包 race-0.9.0.tar.gz 仍然可以下载,但页面上的说明相当直接:除非你清楚自己在做什么,否则不要碰源码。

官方对源码编译的态度

网站 Download 部分对源码的说明包含几条关键信息:

  • 不通过邮件列表提供自行编译 Race 的协助,理由是没人有时间做这件事。
  • Race 的 Makefile 不是为普通公众准备的。
  • Race 的各个发行版往往只能配合特定 CVS 快照的依赖库才能编译成功。

换句话说,即使你拿到了源码,也不一定能用系统里现成的库版本编译通过。官方给出的建议是:不具备相应经验就不要尝试。

编译 Race 需要哪些依赖

源码依赖以下库:

依赖 说明
ClanLib 0.7 CVS 最后测试使用的是 2003 年 3 月 1 日的 CVS 快照
Hermes 图形/像素格式转换库
libPNG & libJPEG PNG、JPEG 图像解码
libz 压缩库
Ogg Vorbis 音频格式支持
GL、GLU OpenGL 及其工具库
ODE v0.03 Open Dynamics Engine,物理引擎
LibXML2 XML 解析

其中最容易卡住的是 ClanLib:官方明确说最后测试的是 2003 年 3 月 1 日的 CVS 快照,这意味着用后来版本的 ClanLib 很可能编译失败。ODE 也指定了 v0.03 这个较老的版本。

如果只是想玩,不必编译

对绝大多数人来说,更省事的路径是直接用官方提供的静态二进制包:

  • 文件:Race-0.9.1-0-static-linux.tar.gz(6.5 MB)
  • 类型:Linux 静态二进制
  • 使用方式:下载后直接运行,不需要额外安装任何库

这个静态包省去了所有依赖问题,是运行 Race 的推荐方式。音乐是可选的,官方另提供由 Sludgefeast 演奏的 Race 原声带。

什么情况下才考虑编译源码

只有在以下条件同时满足时,自行编译才比较现实:

  1. 你能接受使用 2003 年前后的 ClanLib CVS 快照和 ODE v0.03 这类老版本库;
  2. 你有能力自己排查 Makefile 和链接错误,且不指望官方或邮件列表提供帮助;
  3. 你的目的不是玩游戏,而是研究这份代码本身。

如果只是想在 Linux 上跑起来玩,直接用静态二进制包即可,编译源码在这件事上没有收益。

race.sourceforge.net