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

相关推荐
wflynn15 小时前
GitHub 今日推荐|solidcraft:Rust 跨平台参数化 CAD,支持 AI 代理通过 MCP 协议驱动建模
rust·开源·github·cad·3d-modeling·brep
geovindu16 小时前
rust: pool Pattern
开发语言·后端·设计模式·rust·对象池简写模式
Source.Liu17 小时前
【A11】客户端登录流程笔记
windows·rust
william_yangshun18 小时前
WordCraft 观察:纯 Rust 重写文字处理器,把文档变成可编程对象
开发语言·后端·rust·文档自动化
geovindu19 小时前
rust: pool Pattern (续)
开发语言·后端·设计模式·rust·对象池简写模式
滕州市燕猫虎计算机科技工作室个体工商户1 天前
《Rust程序设计》学习笔记八:结构体
笔记·学习·rust·rust程序设计
Amos_Web2 天前
Rspack 源码解析(二十一):Cacheable 与 Storage 如何持久化编译结果
前端·rust·前端框架
可乐ea2 天前
2000 个智能体把 Agent 重写成 Rust:编排流水线拆解
开发语言·后端·rust·多智能体协作·ai编程助手·智能体编排·rust重写
Amos_Web2 天前
Rspack 源码解析(二十二):ExternalsPlugin 如何在 Factorize 阶段换掉整个模块
前端·rust·前端框架
梦醒沉醉2 天前
7、Rust参考手册——属性
rust