Cargo 是 Rust 的包管理器和构建工具,以下是常用命令的详细说明。
基础命令
1. 项目创建与管理
bash
# 创建新项目(二进制应用)
cargo new project_name
# 创建新项目(库)
cargo new lib_name --lib
# 初始化现有目录为 Rust 项目
cargo init
2. 构建与编译
bash
# 编译项目(开发模式)
cargo build
# 编译项目(发布模式,优化)
cargo build --release
# 仅检查代码,不生成二进制文件(快速验证)
cargo check
# 查看编译详情(显示编译命令)
cargo build --verbose
3. 运行
bash
# 运行项目
cargo run
# 运行特定示例
cargo run --example example_name
# 运行带参数的二进制文件
cargo run -- arg1 arg2
# 运行测试
cargo test
# 运行特定测试
cargo test test_name
依赖管理
4. 依赖操作
bash
# 添加依赖(Rust 1.62+)
cargo add serde
cargo add serde --features derive
cargo add tokio --vers 1.0
# 移除依赖
cargo remove serde
# 更新所有依赖到最新版本
cargo update
# 更新特定依赖
cargo update serde
# 查看依赖树
cargo tree
# 查看依赖图(需要 graphviz)
cargo tree --graph
文档与信息
5. 文档
bash
# 生成并打开项目文档
cargo doc --open
# 查看 crate 文档
cargo doc --open --package crate_name
6. 信息查询
bash
# 查看项目信息
cargo metadata
# 列出所有已安装的命令
cargo --list
# 显示版本信息
cargo --version
# 显示详细版本信息
cargo --version --verbose
发布与包管理
7. 发布
bash
# 打包发布到 crates.io(需要先登录)
cargo publish
# 打包但不发布(生成 .crate 文件)
cargo package
# 登录 crates.io
cargo login your-api-token
# 查看当前用户的发布包
cargo owner --list crate_name
高级命令
8. 工作区管理
bash
# 在工作区中构建所有包
cargo build --workspace
# 构建特定包
cargo build -p package_name
cargo build --package package_name
# 测试工作区所有包
cargo test --workspace
9. 交叉编译
bash
# 添加目标平台
rustup target add x86_64-unknown-linux-musl
# 交叉编译
cargo build --target x86_64-unknown-linux-musl
# 查看所有目标
rustup target list
10. 性能分析
bash
# 生成基准测试(需要 nightly Rust)
cargo bench
# 分析构建时间
cargo build --timings
# 生成构建配置文件
cargo rustc -- --emit=llvm-bc
配置相关
11. 配置文件
bash
# 编辑配置(全局)
cargo config
# 查看配置
cargo config get
# 设置配置值
cargo config set build.jobs 4
12. 工具命令
bash
# 安装第三方 Cargo 子命令
cargo install cargo-edit # 添加/删除依赖
cargo install cargo-outdated # 检查过时依赖
cargo install cargo-watch # 自动监控文件变化
# 常用工具
cargo watch -x run # 文件变化时自动运行
cargo outdated # 查看过时的依赖
cargo audit # 检查安全漏洞
实用组合技巧
清理与优化
bash
# 清理构建产物
cargo clean
# 清理特定目标目录
cargo clean --target x86_64-unknown-linux-musl
# 只清理发布版本
cargo clean --release
调试技巧
bash
# 使用调试器(需要 gdb/lldb)
cargo rustc -- -C debuginfo=2
# 查看宏展开
cargo rustc -- -Z unstable-options --pretty=expanded
# 查看 MIR(中间表示)
cargo rustc -- --emit mir
特性管理
bash
# 启用特定特性
cargo run --features "feature1 feature2"
# 禁用默认特性
cargo run --no-default-features
# 列出所有可用特性
cargo metadata | jq '.packages[].features'
环境变量
bash
# 指定构建目录
CARGO_TARGET_DIR=./target cargo build
# 使用特定 Rust 版本
RUSTUP_TOOLCHAIN=nightly cargo build
# 增量编译
CARGO_INCREMENTAL=1 cargo build
# 显示详细错误信息
RUST_BACKTRACE=1 cargo run
常见问题解决
- 构建失败 :使用
cargo clean清理后重试 - 依赖冲突 :检查
Cargo.lock或更新依赖 - 编译慢 :使用
cargo check快速验证,或配置build.jobs - 二进制文件过大 :使用
--release编译,启用 LTO 优化
快速参考表
| 命令 | 用途 |
|---|---|
cargo new |
创建新项目 |
cargo build |
编译项目 |
cargo run |
编译并运行 |
cargo check |
快速检查代码 |
cargo test |
运行测试 |
cargo doc |
生成文档 |
cargo add |
添加依赖 |
cargo update |
更新依赖 |
cargo clean |
清理构建产物 |
cargo publish |
发布到 crates.io |
这些是 Cargo 最常用的命令。Cargo 非常强大,配合 cargo install 安装的各种插件,可以极大提升 Rust 开发效率。