常见问题
问题 1:依赖冲突
error: failed to select a version for `crate_name`解决:
bash
# 更新依赖
cargo update
# 查看冲突
cargo tree -d
# 指定兼容版本
cargo add crate_name@0.9问题 2:编译慢
解决:
bash
# 1. 使用 sccache 缓存
cargo install sccache
# 2. 减少优化级别
# Cargo.toml
[profile.dev]
opt-level = 0
# 3. 使用 mimalloc 链接器
cargo install mimalloc问题 3:Cargo.lock 冲突
解决:
bash
# 重新生成锁文件
rm Cargo.lock
cargo update问题 4:下载依赖慢
解决:配置国内镜像(见 21.10 节)
练习
练习 1:依赖管理
创建一个新项目,添加以下依赖:
- serde(带 derive 功能)
- serde_json
- tokio(带 full 功能)
练习 2:Profile 配置
配置发布模式:
- 启用 LTO
- 优化为最小二进制大小
- 移除调试符号
练习 3:Workspace
创建一个 workspace,包含两个 crate:
common:共享代码库app:使用 common 的应用
小结
本章我们学习了:
- ✅ Cargo 基础概念
- ✅ Cargo.toml 配置
- ✅ 依赖管理
- ✅ 常用 Cargo 命令
- ✅ 常用 Crates 推荐
- ✅ 构建配置(Profiles)
- ✅ Workspaces
- ✅ 发布 Crate
常用命令速查
| 命令 | 说明 |
|---|---|
cargo build | 构建项目 |
cargo build --release | 发布构建 |
cargo run | 运行项目 |
cargo test | 运行测试 |
cargo check | 快速检查 |
cargo fmt | 格式化代码 |
cargo clippy | 代码 lint |
cargo doc --open | 生成文档 |
cargo add | 添加依赖 |
cargo update | 更新依赖 |
cargo tree | 查看依赖树 |