【Rust】Cargo 命令详解

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

常见问题解决

  1. 构建失败 :使用 cargo clean 清理后重试
  2. 依赖冲突 :检查 Cargo.lock 或更新依赖
  3. 编译慢 :使用 cargo check 快速验证,或配置 build.jobs
  4. 二进制文件过大 :使用 --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 开发效率。

相关推荐
杨艺韬1 天前
Rust编译器原理-第11章 闭包:匿名函数的编译器实现
rust·编译器
杨艺韬1 天前
Rust编译器原理-第15章 MIR 优化:编译器的中间表示与优化管线
rust·编译器
杨艺韬1 天前
Rust编译器原理-第6章 单态化:泛型的编译期展开
rust·编译器
杨艺韬1 天前
Rust编译器原理-第14章 宏系统:编译期的元编程引擎
rust·编译器
杨艺韬1 天前
Rust编译器原理-第16章 LLVM 代码生成:从 MIR 到机器码
rust·编译器
杨艺韬1 天前
Rust编译器原理-第5章 内存布局:编译器如何排列数据
rust·编译器
杨艺韬1 天前
Rust编译器原理-第3章 借用检查器:编译器如何证明内存安全
rust·编译器
杨艺韬1 天前
Rust编译器原理-第9章 async/await:状态机的编译器变换
rust·编译器
杨艺韬1 天前
Rust编译器原理-第8章 Trait Object 与虚表:运行时多态的内存布局
rust·编译器
杨艺韬1 天前
Rust编译器原理-第13章 FFI:与 C 世界的桥梁
rust·编译器