Rust cargo 命令行工具使用教程

简介

cargo 是 Rust 的构建系统和包管理器,负责创建项目、编译代码、管理依赖、运行测试等,是日常开发中最常用的工具。

创建项目

shell 复制代码
cargo new project_name      # 创建 binary 项目(可执行)
cargo new --lib mylib       # 创建 library 项目(供其它项目调用)

它会创建一个项目结构:

shell 复制代码
project_name/
├── Cargo.toml        # 项目信息和依赖配置
└── src/
    └── main.rs       # 项目主入口(lib.rs 对于库)

项目结构和配置文件

Cargo.toml 是项目的核心配置文件,类似于 Java 的 pom.xml 或 Node.js 的 package.json:

toml 复制代码
[package]
name = "my_project"
version = "0.1.0"
edition = "2025"

[dependencies]
rand = "0.8"     # 添加依赖

常用命令

编译项目
shell 复制代码
cargo build          # 构建项目(debug 模式)
cargo build --release  # 构建 release 模式(优化)
运行项目
shell 复制代码
cargo run
带参数运行
shell 复制代码
cargo run -- arg1 arg2
检查语法和错误(不编译生成目标文件)
shell 复制代码
cargo check
添加依赖包
shell 复制代码
cargo add serde        # 需要安装 cargo-edit 插件

安装 cargo-edit:

shell 复制代码
cargo install cargo-edit

依赖管理

在 Cargo.toml 中手动添加:
toml 复制代码
[dependencies]
serde = "1.0"
reqwest = { version = "0.11", features = ["json"] }
添加本地 crate:
toml 复制代码
[dependencies]
mycrate = { path = "../mycrate" }
添加 Git 仓库依赖:
toml 复制代码
[dependencies]
mycrate = { git = "https://github.com/user/mycrate.git" }

测试 & 文档

测试
shell 复制代码
cargo test
生成文档
shell 复制代码
cargo doc --open

发布 Crate 到 crates.io

shell 复制代码
cargo login                # 登录 crates.io(需要 token)
cargo publish              # 发布
cargo package              # 打包并检查

构建配置与工作区(workspace)

如果有多个 crate 项目组成一个工程:

根目录 Cargo.toml 配置:

toml 复制代码
[workspace]
members = [
    "core",
    "utils",
    "web"
]

常用 cargo 插件

shell 复制代码
cargo install cargo-edit         # 管理依赖(cargo add/remove/etc)
cargo install cargo-watch        # 自动监控并重编译
cargo install cargo-audit        # 审计安全问题
cargo install cargo-outdated     # 查看依赖是否过期

命令速查表

  • cargo new: 创建项目

  • cargo build:编译项目

  • cargo run:编译并运行

  • cargo check:检查代码是否可编译

  • cargo test:运行测试

  • cargo doc --open:生成并打开文档

  • cargo add xxx:添加依赖(需插件)

  • cargo update:更新依赖到最新版本

  • cargo clean:清理构建产物

  • cargo install:安装二进制 crate(如 ripgrep)

相关推荐
andyweike2 小时前
php笔记
开发语言·笔记·php
EatFan2 小时前
Spring Boot 4 落地观察:从 yudao-cloud、matecloud、JPower 看国产脚手架的升级路线与迁移清单
java·spring boot·后端·spring cloud·微服务·后端开发·jdk 21
鬓戈3 小时前
Rust 语言与 AI 应用生态调研及学习路径
人工智能·学习·rust
Circ.3 小时前
Python 调试 Litellm 本地大模型接口:模型列表与对话接口实操踩坑记录
开发语言·python
波力海苔夹心脆6754 小时前
C# 序列化与反序列化详解:System.Text.Json、Newtonsoft.Json、XmlSerializer 用法、特性选项与安全实践
经验分享·后端·c#·json·.net
现任明教教主~5 小时前
Thinkphp站群蜘蛛池SaaS系统YanyvSEO含多用户/积分/六大引擎计费/易支付对接
java·开发语言·spring
JavaGuide5 小时前
NVIDIA 又开源了!这次给 AI Agent 加上权限管控
前端·后端
excel5 小时前
prisma 如何处理数据库竞态
前端·数据库·后端
Zhou1411365 小时前
SpringSecurity_02_授权与高级功能
开发语言·python