构建项目
本章介绍如何构建 RustyWarfare 的各个组件。
Workspace 结构
RustyWarfare 使用 Cargo Workspace 组织,包含以下子包:
├── content/ # 内容包加载
├── protocol/ # 网络协议
├── server/ # 服务端
├── client/ # 客户端
├── runtime_core/ # 运行时核心
├── gdextension/ # Godot 接入
├── builder/ # 构建工具
└── game_domain/ # 游戏领域模型
构建所有组件
# 构建整个 workspace
cargo build --workspace
# Release 构建 (优化)
cargo build --workspace --release
构建特定模块
# 只构建内容包系统
cargo build -p content
# 只构建服务端
cargo build -p server
# 只构建 GDExtension
cargo build -p gdextension
构建 GDExtension 动态库
GDExtension 是连接 Rust 核心和 Godot 的桥梁。使用 builder 工具自动构建和部署:
cargo run -p builder
builder 会:
- 编译 gdextension 为动态库
- 将产物复制到
launcher/godot/addons/rusty_core/bin/ - 生成正确的 .gdextension 配置文件
验证构建
# 运行所有测试
cargo test --workspace
# 运行特定包的测试
cargo test -p content
cargo test -p server
# 代码风格检查
cargo fmt --check
# Clippy 静态分析
cargo clippy --workspace --all-targets
构建时间优化
如果构建时间过长,可以尝试:
使用 sccache
# 安装 sccache
cargo install sccache
# 配置 Cargo 使用 sccache
export RUSTC_WRAPPER=sccache
并行编译
# 设置并行编译任务数
export CARGO_BUILD_JOBS=8
增量编译 (开发构建)
# 增量编译默认开启,如需禁用:
export CARGO_INCREMENTAL=0
常见构建问题
问题:链接错误
如果遇到链接器错误,可能是缺少系统依赖。参考 环境配置 确保所有工具已安装。
问题:子模块未初始化
git submodule update --init --recursive
问题:Bevy 编译慢
首次编译 Bevy 可能需要较长时间 (5-10 分钟),这是正常现象。后续增量编译会快很多。
下一步
继续阅读 运行与调试 了解如何启动项目。