文章目录
- 你好,Cargo!
- 验证Cargo安装
- 使用Cargo创建项目
- 新建项目
- 配置文件解析
- 默认代码结构
- Cargo工作流
- 常用命令速查表
- 详细使用说明
- 1. 编译项目
- 2. 运行程序
- 3.快速检查
- 4. 发布版本构建
- Cargo的设计哲学
- 约定优于配置
- 工程化优势
- 开发建议
- 1. 新项目初始化
- 2. 现有项目迁移
- 3. 依赖管理实践
- 总结
你好,Cargo!
Cargo是Rust的构建系统和包管理器。绝大多数Rust开发者使用这个工具管理项目,因为它能自动化处理诸多任务:代码编译、依赖库下载、依赖构建等(代码所需的库文件称为依赖)。
即使是简单的"Hello, world!"项目(无依赖),使用Cargo也能获得规范的工程结构。随着项目复杂度提升,Cargo在依赖管理方面的优势将愈发明显。
验证Cargo安装
Cargo会随Rust官方安装包自动安装。验证是否安装成功:
$ cargo --version
若显示版本号(如cargo 1.86.0 (adf9b6ad1 2025-02-28))则表示安装正常。
使用Cargo创建项目
新建项目
在项目目录中执行:
$ cargo new hello_cargo
$ cd hello_cargo
该命令生成以下工程结构:
hello_cargo/
├── Cargo.toml # 项目配置文件
└── src/
└── main.rs # 入口文件
同时自动初始化Git仓库(若当前不在Git仓库中),生成.gitignore文件。
提示:使用cargo new --vcs=git强制生成Git仓库,或–vcs=none跳过版本控制
配置文件解析
Cargo.toml 文件内容示例:
[package]
name = "hello_cargo" # 项目名称
version = "0.1.0" # 版本号
edition = "2024" # Rust版本
[dependencies] # 依赖声明区
-
使用TOML格式编写配置
-
edition字段指定Rust版本(详见附录E)
-
依赖将在后续章节中添加
默认代码结构
自动生成的src/main.rs包含经典Hello World:
fn main() {
println!("Hello, world!");
}
Cargo强制约定源代码必须位于src目录,顶层目录存放配置文件、文档等非代码资源。
Cargo工作流
常用命令速查表
命令 | 作用 | 输出路径 |
---|---|---|
cargo build | 编译调试版本 | target/debug/ |
cargo run | 编译并运行 | 自动选择最新编译结果 |
cargo check | 快速语法检查(不生成二进制) | 无 |
cargo build --release | 编译优化版本 | target/release/ |
详细使用说明
1. 编译项目
$ cargo build
-
生成调试用可执行文件:target/debug/hello_cargo(Windows为.exe)
-
首次编译生成Cargo.lock文件(自动跟踪依赖版本)
2. 运行程序
$ ./target/debug/hello_cargo # 直接运行
$ cargo run # 编译后自动运行
- cargo run会智能判断是否需要重新编译
运行效果如下图:
3.快速检查
$ cargo check
-
检查编译错误但不生成二进制文件
-
速度比完整编译快3-5倍,适合开发时实时验证
4. 发布版本构建
当项目需要部署时,使用优化编译:
$ cargo build --release
-
生成的可执行文件位于target/release/
-
启用编译器优化(运行更快,编译更慢)
-
适合性能测试和最终发布
Cargo的设计哲学
约定优于配置
-
强制源代码目录结构
-
标准化配置文件格式
-
跨平台命令一致性(Linux/macOS/Windows命令相同)
工程化优势
随着项目发展,Cargo的价值体现在:
依赖管理:自动处理嵌套依赖
工作区支持:管理多crate项目
构建缓存:增量编译加速开发
元数据管理:通过Cargo.toml声明项目属性
开发建议
1. 新项目初始化
总是使用cargo new创建标准工程结构
2. 现有项目迁移
手动创建src目录和Cargo.toml,或运行:
$ cargo init
3. 依赖管理实践
-
添加依赖:直接编辑Cargo.toml的[dependencies]
-
更新依赖:
cargo update
-
清除缓存:
cargo clean
总结
-
Cargo核心功能:构建系统 + 包管理器
-
使用cargo new创建规范项目
-
通过build/run/check管理开发流程
-
区分调试构建与发布构建
-
理解Cargo的工程化设计理念