【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 开发效率。

相关推荐
大卫小东(Sheldon)8 小时前
集成AI 的 Redis 客户端 Rudist发布新版了
ai·rust·rudist
无心水9 小时前
【时间利器】5、多语言时间处理实战:Go/C#/Rust/Ruby统一规范
golang·rust·c#·时间·分布式架构·openclaw·openclaw变现
Source.Liu9 小时前
【Rust】Rust 项目结构详解
rust
thulium_9 小时前
Rust 编译错误:link.exe 未找到
开发语言·后端·rust
Source.Liu10 小时前
【rust】Rust 默认引用 std::prelude
rust
Source.Liu10 小时前
【rust】VSCode Rust 开发扩展推荐
rust
大卫小东(Sheldon)1 天前
大模型智能体 (agent)简易流程介绍
ai·rust
小杍随笔1 天前
【Rust 语言编程知识与应用:同步机制详解】
开发语言·算法·rust
Rust研习社1 天前
Rust 错误处理:thiserror 和 anyhow 的使用
rust