Skip to content

环境搭建

在开始学习 Rust 之前,我们需要先搭建好开发环境。本章将指导你完成 Rust 的安装、编辑器配置,并运行你的第一个 Rust 程序。

Rust 官方推荐使用 rustup 来安装和管理 Rust 工具链。

打开终端,运行以下命令:

Terminal window
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

按照提示完成安装,然后重新加载环境变量:

Terminal window
source $HOME/.cargo/env
  1. 下载并运行 rustup-init.exe
  2. 按照安装向导完成安装
  3. 可能需要安装 Visual Studio C++ Build Tools

安装完成后,验证 Rust 是否安装成功:

Terminal window
rustc --version
cargo --version

你应该能看到类似以下的输出:

rustc 1.75.0 (82e1608df 2023-12-21)
cargo 1.75.0 (1d8b05cdd 2023-11-20)
  1. 安装 Visual Studio Code
  2. 安装 rust-analyzer 扩展(在扩展市场搜索安装)

rust-analyzer 提供了:

  • 代码补全
  • 类型提示
  • 错误诊断
  • 跳转定义
  • 重构支持
  • IntelliJ IDEA / CLion:安装 Rust 插件
  • Vim / Neovim:配置 rust-analyzer LSP
  • Sublime Text:安装 Rust Enhanced 插件

Cargo 是 Rust 的包管理器和构建工具,类似于 Node.js 的 npm 或 Python 的 pip。

Terminal window
# 创建新项目
cargo new hello_rust
cd hello_rust

这会创建以下目录结构:

hello_rust/
├── Cargo.toml # 项目配置文件
└── src/
└── main.rs # 源代码入口

打开 src/main.rs,你会看到:

fn main() {
println!("Hello, world!");
}

让我们理解这段代码:

  • fn main() 定义了程序的入口函数
  • println! 是一个宏(注意末尾的 !),用于打印文本到控制台
  • Rust 使用 {} 来界定代码块,语句以 ; 结尾
Terminal window
cargo run

你应该看到输出:

Compiling hello_rust v0.1.0 (/path/to/hello_rust)
Finished dev [unoptimized + debuginfo] target(s) in 0.50s
Running `target/debug/hello_rust`
Hello, world!
命令说明
cargo new <name>创建新项目
cargo build编译项目(debug 模式)
cargo build --release编译项目(release 模式,有优化)
cargo run编译并运行
cargo check检查代码是否能编译(比 build 快)
cargo test运行测试
cargo doc --open生成并打开文档
cargo update更新依赖

cargo check 只检查代码能否编译,不生成可执行文件,速度比 cargo build 快很多。在开发过程中,建议频繁使用 cargo check 来检查代码。

Terminal window
# 快速检查代码
cargo check
# 需要运行时才 build
cargo build

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

[package]
name = "hello_rust"
version = "0.1.0"
edition = "2021"
[dependencies]
# 在这里添加依赖
  • name:项目名称
  • version:项目版本
  • edition:使用的 Rust 版本(2021 是目前最新的稳定版)
  • [dependencies]:项目依赖

例如,添加 rand 随机数库:

[dependencies]
rand = "0.8"

然后运行 cargo build,Cargo 会自动下载并编译依赖。

使用 cargo new 创建一个名为 my_first_rust 的项目,运行 Hello World 程序。

修改 main.rs,让程序打印你的名字和今天的日期:

fn main() {
println!("我是 [你的名字]");
println!("今天是 2024 年 1 月 1 日");
}
  1. 故意在代码中引入一个错误(例如删掉一个分号)
  2. 运行 cargo check,观察错误信息
  3. 运行 cargo build,比较两者的输出和速度
  4. 修复错误,再次运行

思考:为什么开发时推荐使用 cargo check 而不是 cargo build

环境搭建完成后,让我们进入下一章,学习 Rust 的基本语法。