跳转至

Linux 开发

Linux 是本地和 CI 覆盖最广的平台,但构建结果只有连同 compiler、frontend、SDL 版本、 localization、sound、test、sanitizer 与 build type 才有意义。

权威入口

  • Makefile 定义原生 Make feature switch 与验证 target。
  • CMakePresets.json 定义 linux-x64、linux-tiles-sounds-x64 和 vcpkg 变体。
  • .github/workflows/matrix.yml 记录当前 CI 实际覆盖的组合。
  • doc/c++/COMPILING.md 可提供背景;与以上构建文件冲突时以构建文件为准。

受支持路径

最小 CMake 路径是 curses、启用本地化与测试的 linux-x64 preset; linux-tiles-sounds-x64 增加图形与音频依赖面。原生 Make 通过 TILES、SOUND、 SDL3、LOCALIZE、TESTS、compiler、sanitizer 与 release flag 表达相同维度。

cmake --list-presets
cmake --preset linux-x64
cmake --build --preset linux-x64

聚焦原生测试遵循根 AGENTS 和 test matrix,不要复制大型 release 命令:

make -j2 tests
./tests/cata_test "<focused filter>"

验证与产物

报告 distribution、architecture、compiler/version、Make/CMake、preset/flag、curses/tiles、 SDL2/SDL3、sound、localization、sanitizer 和准确 test filter。build directory、 compile_commands.json、profiler capture 与 symbol database 是本地/CI artifact,不是要 提交的源码。

边界与注意事项

Linux 通过不能证明 Windows 或 Android 支持。SDL3 需要编译后的 shader artifact;SDL2 仍是独立 fallback lane。旧文档中的包管理命令容易过时,应按 configure 输出与已验证 构建配置诊断。