我们前面编译rust程序的时候,是直接使用rust命令的。其实,我们还可以使用官方提供的构建工具,它是一个集合了编译、包管理等等的一个工具。
Cargo 是什么
Cargo 是 Rust 官方的构建工具 + 包管理器。绝大多数 Rust 开发者都会使用它,自动完成这些工作:
- 编译源代码
- 下载、编译项目依赖库(Rust 中依赖包称为 crate)
- 管理项目配置、构建产物
极简 Hello World 项目没有依赖,只能用到 Cargo 的编译功能,可能觉得不明显;当项目变复杂、需要引入第三方库时,Cargo 的优势会非常明显。
使用官方 rustup 安装 Rust 时,Cargo 会一并安装。
校验 Cargo 是否安装成功,终端执行:
cargo --version

使用 Cargo 创建新项目
进入你存放代码的 projects 目录,执行:
# 创建项目 hello_cargo
cargo new hello_cargo
# 进入项目文件夹
cd hello_cargoCode language: PHP (php)
Cargo 自动生成的目录结构
hello_cargo/
├── Cargo.toml # 项目配置文件(核心)
├── .gitignore
├── .git/ # 自动初始化 Git 仓库
└── src/
└── main.rs # 源代码入口
Code language: PHP (php)
演示:我们先创建一个文件夹D:\rustdemo\cargodemo
cmd定位到这个目录
C:\Users>d:
D:\>cd D:\rustdemo\cargodemo
D:\rustdemo\cargodemo>cargo new hello_cargo
Creating binary (application) `hello_cargo` package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
D:\rustdemo\cargodemo>cd hello_cargo
D:\rustdemo\cargodemo\hello_cargo>dir
驱动器 D 中的卷是 本地磁盘
卷的序列号是 A237-4B8D
D:\rustdemo\cargodemo\hello_cargo 的目录
2026/07/29 16:18 <DIR> .
2026/07/29 16:18 <DIR> ..
2026/07/29 16:18 8 .gitignore
2026/07/29 16:18 82 Cargo.toml
2026/07/29 16:18 <DIR> src
2 个文件 90 字节
3 个目录 513,455,128,576 可用字节Code language: JavaScript (javascript)

main.rs 在 D:\rustdemo\cargodemo\hello_cargo\src目录下面
- 如果当前目录已经是 Git 仓库,
cargo new不会重复创建 git 文件- 控制版本控制系统参数:
cargo new --vcs=git/cargo new --vcs=none- 查看帮助:
cargo new --help
1. Cargo.toml
项目配置文件,TOML 格式
[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2024"
[dependencies]
Code language: JavaScript (javascript)
[package]:项目基础配置段name:项目名称version:版本号edition:Rust 语言版本规范
[dependencies]:依赖列表,后续引入第三方 crate 写在这里,当前项目无依赖所以为空。
2. src/main.rs
自动生成的源码,里面包含程序的入口Main函数
fn main() {
println!("Hello, world!");
}
Code language: Rust (rust)
Cargo 目录规范
源代码统一放在 src/ 文件夹
项目根目录用于存放:README、协议文件、配置文件,不存放源码。
如果你之前用
rustc写的裸项目想迁移成 Cargo 项目:
- 把源码移入
src/- 在项目根目录执行
cargo init,自动生成 Cargo.toml
Cargo 常用编译、运行命令
cargo的命令是全平台通用
1. cargo build
编译项目,生成调试版本可执行文件
cargo build
输出示例:
Compiling hello_cargo v0.1.0 (file:///projects/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 2.85 secs
Code language: JavaScript (javascript)

产物路径:
- Linux/macOS:
target/debug/hello_cargo - Windows:
target\debug\hello_cargo.exe
手动运行编译产物:
# Linux / macOS
./target/debug/hello_cargo
# Windows PowerShell / CMD
.\target\debug\hello_cargo.exe
Code language: PHP (php)
输出:Hello, world!
首次执行
cargo build会自动生成 Cargo.lock 文件
- 锁定所有依赖精确版本 不要手动修改 Cargo.lock,由 Cargo 自动维护
2. cargo run(最常用)
编译 和 一键运行,合并两步操作
cargo run

两种情况:
- 源码未修改:直接运行已有二进制,不重新编译
Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
Running `target/debug/hello_cargo`
Hello, world!
Code language: JavaScript (javascript)
- 修改过源码:自动重新编译再运行
Compiling hello_cargo v0.1.0 (file:///projects/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 0.33 secs
Running `target/debug/hello_cargo`
Hello, world!
Code language: JavaScript (javascript)
3. cargo check
只检查代码语法、类型是否合法,不生成可执行文件
cargo check

优势:速度远快于 cargo build,开发时频繁执行用来提前发现错误。
4. cargo build --release 发布构建
生成发行优化版本,用于正式交付用户
cargo build --release

产物目录:target/release/
特点:
- 开启编译器优化,程序运行速度更快
- 编译耗时更长

直接运行

如果读者双击运行,可能会看不到输出,因为程序执行完毕就退出了,可能来不及看到命令行窗口
Cargo 核心命令速查表
| 命令 | 作用 |
|---|---|
cargo new xxx | 创建新项目 |
cargo init | 在已有文件夹初始化 Cargo 项目 |
cargo build | 构建调试版本 |
cargo run | 构建并运行调试程序 |
cargo check | 检查代码可编译性,不产出二进制 |
cargo build --release | 构建优化发行版 |
Cargo 总结
小型程序看不出优势,项目变大后优势明显:
- 统一项目目录规范
- 自动管理第三方依赖(crate)
- 一套命令跨 Windows /macOS/ Linux 通用
- 区分调试构建(dev)与发布构建(release)
拉取别人的 Rust 开源项目标准流程:
git clone https://xxx/xxx.git
cd 项目文件夹
cargo build
cargo runCode language: PHP (php)