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

相关推荐
带娃的IT创业者6 小时前
重新定义前端构建速度:深度解析 SWC 如何用 Rust 颠覆 JavaScript 工具链
前端·javascript·rust·前端构建·swc
Yeauty10 小时前
用 Whisper 转录前,你不用再离开 Rust
开发语言·rust·ffmpeg·音视频·视频
程序员爱钓鱼10 小时前
Rust HashMap 详解:键值存储、查询、更新与统计
后端·面试·rust
doiito1 天前
【AI 应用】从“外国人味”到地道中文:kokoroi-rs v0.1.2 架构升级深度解析
ai·rust·系统设计
Zwarwolf1 天前
Rust零散知识点项目汇总
开发语言·rust
X档案库1 天前
【开源】我做了一套可以 AI 托管的 Markdown 博客与知识库
rust·博客·markdown·marksharex
程序员爱钓鱼1 天前
Rust Vec 动态数组详解:创建、增删、遍历与排序
前端·后端·rust
_abab1 天前
Rust重塑系统编程:从Linux内核到AI推理引擎的2026全景解析
linux·人工智能·rust
doiito2 天前
【Agent Harness】Gliding Horse 高级认知优化:让 Agent 的“大脑”和“免疫系统”真正协同
ai·rust·架构设计·系统设计·ai agent
longxiangam2 天前
第 4 篇:Embassy 异步运行时与事件驱动架构
单片机·嵌入式硬件·rust