Skip to content

常见问题

问题 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查看依赖树

第 22 章:智能指针