第二篇:《环境搭建与 Hello World:Cargo、rustc 与工具链》

"工欲善其事,必先利其器。"Rust 的开发体验在系统编程语言中堪称一流,这在很大程度上归功于它的工具链设计。与 C/C++ 需要手动配置编译器、构建系统和包管理器不同,Rust 通过 rustup 和 Cargo 提供了开箱即用的一体化体验。本文从 Rust 安装讲起,系统讲解 rustup、cargo、rustc、clippy、rustfmt 等核心工具的使用,并通过第一个 Rust 项目带你熟悉项目结构、依赖管理和日常开发流程。跟着操作,20 分钟内拥有一个可用的 Rust 开发环境。

一、安装 Rust:rustup 是唯一入口

Rust 官方推荐的安装方式是 rustup------Rust 的工具链管理器。它不仅能安装 Rust,还能管理多个版本的工具链、切换 stable/beta/nightly 通道、更新组件。

1.1 在 Linux/macOS 上安装

bash 复制代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装程序会询问安装选项,直接回车选择默认即可。安装完成后,需要将 Cargo 的 bin 目录加入 PATH:

bash 复制代码
source $HOME/.cargo/env

1.2 在 Windows 上安装

访问 https://rustup.rs 下载 rustup-init.exe,双击运行。Windows 上还需要 Visual Studio C++ Build Tools(提供链接器),安装程序会提示你安装。

💡 国内加速:如果下载缓慢,可以设置环境变量使用国内镜像:

bash 复制代码
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup

1.3 验证安装

bash 复制代码
rustc --version
cargo --version
rustup --version

预期输出类似:

text

rustc 1.85.0 (4d91de4e4 2025-02-17)

cargo 1.85.0 (d73d2caf9 2024-12-31)

rustup 1.27.1 (54dd3d00f 2024-04-24)

二、工具链组件:Rust 的"五件套"

rustup 安装的 Rust 工具链包含多个组件,核心的有以下五个:

2.1 管理工具链

bash 复制代码
# 查看已安装的工具链
rustup toolchain list

# 安装 nightly 工具链(用于实验特性)
rustup toolchain install nightly

# 切换默认工具链
rustup default nightly

# 更新所有工具链
rustup update

# 安装组件(如 clippy、rustfmt)
rustup component add clippy rustfmt

💡 stable vs nightly:stable 是稳定版,每 6 周发布一次;nightly 是每日构建版,包含实验性特性。生产项目始终使用 stable,仅在需要特定 unstable 特性时才用 nightly。

三、Cargo:Rust 的"全家桶"

Cargo 是 Rust 的包管理器和构建工具。它负责:依赖管理、编译构建、运行测试、生成文档、发布 crate。在 Rust 生态中,你几乎不需要手动调用 rustc------Cargo 会替你完成一切。

3.1 创建第一个项目

bash 复制代码
cargo new hello
cd hello

Cargo 会生成一个标准的项目结构:

text

hello/

├── Cargo.toml # 项目元数据与依赖

├── src/

│ └── main.rs # 入口文件

└── .gitignore # Git 忽略规则(自动生成)

3.2 Cargo.toml:项目清单

Cargo.toml 是项目的配置文件,使用 TOML 格式:

toml

package

name = "hello"

version = "0.1.0"

edition = "2024" # Rust 版次(2024 是最新版)

dependencies

依赖在这里声明

关键字段:

name:包名(也是 crate 名)

version:语义化版本(SemVer)

edition:Rust 版次(2015/2018/2021/2024),影响语法兼容性

dependencies:项目依赖的第三方 crate

3.3 Cargo.lock:锁定精确版本

首次执行 cargo build 后,Cargo 会生成 Cargo.lock 文件,记录所有依赖的精确版本。它确保团队成员和 CI 环境使用完全相同的依赖版本。

提交规则:

二进制项目(应用):Cargo.lock 必须提交到 Git

库项目(crate):Cargo.lock 通常不提交(由使用者决定)

四、Hello World:第一个 Rust 程序

4.1 编写代码

src/main.rs 的内容:

rust 复制代码
fn main() {
    println!("Hello, Rust!");
}

代码解析:

fn main():入口函数,每个可执行 Rust 程序都必须有 main 函数

println!:宏(注意末尾的 !),向标准输出打印内容

语句末尾的分号 ; 表示这是一个语句

4.2 运行程序

bash 复制代码
cargo run

预期输出:

text

Compiling hello v0.1.0 (/path/to/hello)

Finished dev profile unoptimized + debuginfo target(s) in 0.35s

Running target/debug/hello

Hello, Rust!

4.3 只编译不运行

bash 复制代码
cargo build

生成的二进制文件位于 target/debug/hello。执行 ./target/debug/hello 效果与 cargo run 相同。

4.4 Release 构建

开发时使用 cargo build(debug 模式,包含调试信息,编译快,运行慢)。发布时使用:

bash 复制代码
cargo build --release

Release 模式开启优化,编译慢但运行快,生成的二进制在 target/release/hello。

五、依赖管理:从 crates.io 添加包

Rust 的包仓库是 crates.io,目前有超过 15 万个 crate。添加依赖有两种方式:

5.1 手动编辑 Cargo.toml

toml

dependencies

rand = "0.8"

5.2 使用 cargo add 命令(推荐)

bash 复制代码
cargo add rand

Cargo 会自动查询最新版本并写入 Cargo.toml。

5.3 使用依赖

rust 复制代码
use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let n: u32 = rng.gen_range(1..=100);
    println!("随机数: {}", n);
}

5.4 语义化版本约束

toml

rand = "0.8" # 等价于 ^0.8,允许 0.8.x 但不允许 0.9

rand = "=0.8.5" # 精确锁定 0.8.5

rand = ">=0.8,<0.9" # 范围约束

⚠️ 注意:0.x.y 版本的兼容性规则与 1.x.y 不同------0.8.x 到 0.9.0 可能包含破坏性变更。

六、常用 Cargo 命令速查

七、IDE 配置:rust-analyzer

rust-analyzer 是 Rust 官方推荐的 IDE 语言服务器,提供代码补全、跳转定义、类型提示、重构等功能。

7.1 VS Code 配置

安装 VS Code 扩展 rust-analyzer(由 rust-lang 官方维护)。

打开 Rust 项目,rust-analyzer 会自动激活。

首次打开时,它会下载并编译必要的组件(约 1-2 分钟)。

推荐设置(settings.json):

json

{

"rust-analyzer.checkOnSave": true,

"rust-analyzer.cargo.features": "all",

"rust": {

"editor.formatOnSave": true,

"editor.defaultFormatter": "rust-lang.rust-analyzer"

}

}

7.2 JetBrains 系列

IntelliJ IDEA、CLion、RustRover 都支持 Rust 开发。JetBrains 的 Rust 插件功能强大,但需要付费订阅(RustRover 提供免费试用)。

八、离线文档:随时查阅官方资料

Rust 提供了完整的离线文档。安装后执行:

bash 复制代码
rustup doc

浏览器会打开本地文档,包含:

The Rust Programming Language(《Rust 程序设计语言》,俗称"圣经")

Rust By Example(通过示例学 Rust)

The Cargo Book(Cargo 官方手册)

std API 文档(标准库参考)

💡 强烈建议:遇到不熟悉的 API 时,先查 rustup doc 而非搜索引擎------离线文档永远是最新且最准确的。

九、小结

安装:通过 rustup 安装 Rust,一条命令搞定所有工具链。

工具链五件套:rustc(编译器)、cargo(构建工具)、clippy(lint)、rustfmt(格式化)、rust-analyzer(IDE 支持)。

Cargo 项目结构:Cargo.toml(清单)+ Cargo.lock(锁文件)+ src/(源码)。

Hello World:cargo new → cargo run,三行代码跑通第一个程序。

依赖管理:cargo add 从 crates.io 添加依赖,Cargo.lock 保证版本一致性。

IDE:VS Code + rust-analyzer 是免费且强大的组合。

离线文档:rustup doc 随时查阅权威资料。

相关推荐
小灰灰搞电子4 小时前
Rust suppaftp 库详解:基于 FTP 客户端实战指南
开发语言·后端·rust
Ramble_Naylor4 小时前
枚举与 match:一个值只能是几种情况之一
后端·rust
编码浪子4 小时前
Rust unsafe 与 FFI 互操作生产级实战:把危险关进笼子的四道闸门
开发语言·后端·rust
传奇开心果编程13 小时前
【xilem0.4基础语法学与练】第13课:Xilem 0.4 最简短代码体现“一切皆设计图“
学习·rust·前端框架
传奇开心果编程21 小时前
【Xilem 0.4 基础语法学与练】第二课视图修饰符、列表渲染、组件拆分、memoize 性能优化
学习·rust·前端框架
孙启超1 天前
【AI开发之Rust】第 1 课:认识 Rust 与开发环境 —— 装好工具链,跑通第一个程序
开发语言·人工智能·后端·ai·rust·安全架构
老猿讲编程1 天前
【Eclipse OpenSOVD学习之十四】差距清单与演进建议
学习·rust·eclipse·车载·sovd
传奇开心果编程1 天前
【Xilem 0.4 基础语法学与练】第17课:Lens 机制——状态切片与子组件复用
学习·rust·前端框架
老猿讲编程1 天前
【Eclipse OpenSOVD学习之十一】网关二进制与部署
学习·中间件·rust·eclipse·汽车