从零开始学Rust:第一章 安装与环境设置
欢迎踏上 Rust 学习之旅!Rust 是一门赋予每个人构建可靠、高效软件能力的语言。它的三大核心优势——性能、可靠性和生产力——使其在系统编程、Web 后端、嵌入式设备、命令行工具等众多领域大放异彩。与其他语言相比,Rust 最大的特点在于其所有权系统,它能在编译时就杜绝一大类常见的内存错误(如空指针、悬垂指针、数据竞争等),让你无需“垃圾回收器”也能写出内存安全的代码。
本系列文章《从零开始学Rust》将带你从最基础的概念开始,一步步掌握这门强大而优雅的语言。作为第一章,我们的目标非常明确:在你的电脑上搭建一个完整、舒适的 Rust 开发环境。这包括安装 Rust 工具链、了解核心工具的用法、编写并运行你的第一个 Rust 程序,以及配置一个现代化的代码编辑器。
别担心,得益于 Rust 官方出色的工具链管理工具 rustup
,整个过程远比你想象的要简单和顺畅。让我们开始吧!
1. 核心工具:rustup
的介绍与安装
在开始安装之前,我们需要了解一个关键工具:rustup
。
rustup
并非 Rust 编译器本身,而是 Rust 的官方工具链管理器。你可以把它想象成一个“管家”,它负责为你安装、管理和更新所有与 Rust 开发相关的组件。这包括:
rustc
: Rust 编译器(Compiler)。这是将你的.rs
源代码文件转换成可执行文件的核心程序。cargo
: Rust 的项目构建系统和包管理器(Package Manager)。这是你日常开发中使用最频繁的工具,它负责创建项目、编译代码、管理依赖(第三方库)、运行测试、生成文档等等。它是 Rust 生态系统的基石。rust-std
: Rust 标准库(Standard Library)。提供了开发所需的大量基础功能,如数据结构(Vec
,HashMap
)、I/O 操作、多线程支持等。rust-docs
: Rust 的官方文档。rustup
会为你安装一份离线文档,让你随时可以查阅。- 其他可选组件,如
clippy
(代码风格和错误检查器) 和rustfmt
(代码格式化工具)。
使用 rustup
的最大好处是,你可以轻松地在不同的 Rust 版本(如稳定版 stable
、测试版 beta
和每夜构建版 nightly
)之间切换,并且更新整个工具链只需要一条简单的命令。
1.1. 在 Linux 或 macOS 上安装
对于 Linux 和 macOS 用户,安装过程极其简单。你只需要打开你的终端(Terminal)并运行以下命令:
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
这条命令做了什么?
curl
是一个常用的命令行工具,用于从网络服务器传输数据。--proto '=https' --tlsv1.2 -sSf
是一些安全和行为参数,确保你通过安全的 HTTPS 协议下载脚本,并且在出错时能静默失败。https://sh.rustup.rs
是rustup
官方安装脚本的地址。| sh
(管道符) 将curl
下载的脚本内容直接传递给sh
(shell) 来执行。
执行该命令后,你会在终端看到一些欢迎信息和安装选项。它会告诉你将要安装的位置(通常是 ~/.cargo/
)和将要修改的系统环境变量。
“`text
Welcome to Rust!
This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.
Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:
/home/your-username/.rustup
This can be modified with the RUSTUP_HOME environment variable.
The Cargo home directory is located at:
/home/your-username/.cargo
This can be modified with the CARGO_HOME environment variable.
The cargo, rustc, rustup and other commands will be added to
Cargo’s bin directory, located at:
/home/your-username/.cargo/bin
This path will then be added to your PATH environment variable by
modifying the profile file located at:
/home/your-username/.profile
You can uninstall at any time with rustup self uninstall
and
these changes will be reverted.
Current installation options:
default host: x86_64-unknown-linux-gnu
default toolchain: stable (default)
profile: default
modify PATH variable: yes
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
“`
通常情况下,你只需要直接按回车键,选择默认选项 1) Proceed with installation
即可。rustup
会自动为你下载并安装最新稳定版的 Rust 工具链。
安装完成后,你会看到一条重要的提示信息:
“`text
Rust is installed now. Great!
To get started you may need to configure your current shell.
Run the following command in your shell to configure it for Cargo:
source “$HOME/.cargo/env”
“`
这是因为安装程序修改了你的 shell 配置文件(如 .bash_profile
, .zshrc
或 .profile
),但这些更改只在下次登录或新开终端时才会生效。为了让当前终端立即识别 rustc
和 cargo
等命令,你需要运行提示中的命令:
bash
source "$HOME/.cargo/env"
或者,你也可以直接关闭当前终端,再重新打开一个新的终端窗口。
1.2. 在 Windows 上安装
在 Windows 上安装 Rust 同样简单,但有一个重要的前提条件:Rust 依赖于 C++ 的构建工具集,特别是链接器(linker)。因此,在安装 rustup
之前,你必须先安装 Microsoft C++ Build Tools。
最简单的方式是访问 Visual Studio 官网下载 “Build Tools for Visual Studio”。在安装程序中,请确保勾选了以下两个组件:
1. “使用 C++ 的桌面开发” 工作负载。
2. Windows 10/11 SDK(通常会自动勾选)。
安装完 C++ 构建工具后,就可以开始安装 Rust 了。
- 访问 Rust 官方网站:https://www.rust-lang.org/tools/install
- 网站会自动检测你的操作系统,并提供下载
rustup-init.exe
的链接。 - 下载并运行
rustup-init.exe
。
运行后,会弹出一个类似于 Linux/macOS 终端的命令行窗口,显示与上面类似的安装选项。
“`text
Welcome to Rust!
… (类似的信息) …
Current installation options:
default host: x86_64-pc-windows-msvc
default toolchain: stable
profile: default
modify PATH variable: yes
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
“`
同样,直接按 1
然后回车,选择默认安装即可。rustup
会处理好一切,包括将 C:\Users\YourUser\.cargo\bin
目录添加到系统的 PATH
环境变量中。
安装完成后,rustup-init.exe
窗口会自动关闭。为了让环境变量生效,你最好重启所有已打开的命令行窗口(如 CMD, PowerShell 或 Windows Terminal)。
1.3. 验证安装
无论你使用哪个操作系统,验证安装是否成功的步骤都是一样的。打开一个新的终端(或 CMD/PowerShell)窗口,依次输入以下命令:
-
检查
rustc
(编译器) 版本:bash
rustc --version你应该会看到类似这样的输出(版本号可能会不同):
rustc 1.78.0 (9b00956e5 2024-04-29)
-
检查
cargo
(包管理器) 版本:bash
cargo --version你应该会看到类似这样的输出:
cargo 1.78.0 (54d881520 2024-04-10)
-
检查
rustup
(工具链管理器) 版本:
bash
rustup --version
你应该会看到类似这样的输出:
rustup 1.27.0 (bbb9276d2 2024-03-08)
如果这三条命令都能正确输出版本信息,那么恭喜你,Rust 开发环境已经成功安装到你的电脑上了!
1.4. rustup
的进阶使用(可选)
虽然现在你还用不到,但了解 rustup
的一些常用命令会对你未来的学习非常有帮助。
-
更新 Rust 工具链:Rust 每六周发布一个新版本。更新到最新的稳定版非常简单:
bash
rustup update -
查看已安装的工具链:
bash
rustup toolchain list -
安装其他工具链(例如,想尝试最新功能的
nightly
版):
bash
rustup install nightly -
切换默认工具链:
bash
rustup default nightly # 将 nightly 设为默认
rustup default stable # 切换回 stable -
安装额外组件(例如,非常实用的
clippy
和rustfmt
):
bash
rustup component add clippy
rustup component add rustfmt - 卸载 Rust:如果你想完全移除 Rust,
rustup
也提供了清晰的卸载方式:
bash
rustup self uninstall
2. 第一个 Rust 程序:Hello, World!
按照编程界的传统,学习一门新语言的第一步总是从打印 “Hello, world!” 开始。我们将通过两种方式来完成这个任务:一种是直接使用编译器 rustc
,另一种是使用项目管理器 cargo
。这将帮助你深刻理解 cargo
带来的便利。
2.1. 方式一:直接使用 rustc
(不推荐日常使用)
这种方式能让你直观地看到编译过程,但对于真实项目来说过于繁琐。
-
创建项目目录和文件:
打开你的终端,创建一个名为hello_rust
的文件夹,并进入该文件夹。
bash
mkdir hello_rust
cd hello_rust
然后,创建一个名为main.rs
的源文件。(.rs
是 Rust 源代码文件的标准扩展名)。 -
编写代码:
用你喜欢的任何文本编辑器打开main.rs
文件,然后输入以下代码:
rust
fn main() {
println!("Hello, world!");
}
我们来简单分解一下这段代码:fn main() { ... }
:定义了一个名为main
的函数(function)。main
函数非常特殊,它总是 Rust 可执行程序的入口点。fn
是声明函数的关键字。println!("Hello, world!");
:这是一个宏(macro)调用,用于在控制台打印文本。你可能注意到了println
后面的感叹号!
,这是 Rust 中宏调用的标志。宏是一种元编程能力,可以生成更复杂的代码。现在你只需要记住,println!
用于打印内容并换行。- 代码行以分号
;
结尾,表示一个语句的结束。
-
编译和运行:
保存文件后,回到你的终端,使用rustc
命令来编译它:
bash
rustc main.rs
如果代码没有错误,rustc
会在当前目录下生成一个可执行文件。- 在 Linux 和 macOS 上,这个文件名为
main
。 - 在 Windows 上,这个文件名为
main.exe
。
现在,运行这个程序:
* 在 Linux/macOS 上:./main
* 在 Windows 上:main.exe
你将在终端上看到输出:
Hello, world!
- 在 Linux 和 macOS 上,这个文件名为
你成功了!但这只是“手动挡”模式。对于任何超过一个文件的项目,手动调用 rustc
并管理编译选项会变得异常复杂。接下来,让我们看看“自动挡”——cargo
。
2.2. 方式二:使用 cargo
(推荐)
cargo
是 Rust 开发的“瑞士军刀”,它将彻底改变你的开发体验。
-
创建新项目:
首先,回到你的工作区目录(hello_rust
的上一级),然后使用cargo new
命令创建一个新项目。这次我们叫它hello_cargo
。
bash
cargo new hello_cargo
这条命令会创建一个名为hello_cargo
的新目录,并为你生成一个标准的项目结构:
hello_cargo
├── Cargo.toml
└── src
└── main.rssrc
目录:存放所有源代码的地方。src/main.rs
:cargo
已经为你生成了一个包含 “Hello, world!” 的main.rs
文件,内容和我们刚才手写的一模一样。Cargo.toml
:这是cargo
的清单文件(manifest file),采用 TOML 格式。它包含了项目的所有元数据和配置信息。
-
理解
Cargo.toml
:
打开Cargo.toml
文件,你会看到类似这样的内容:
“`toml
[package]
name = “hello_cargo”
version = “0.1.0”
edition = “2021”[dependencies]
``
[package]
*部分:定义了项目的基本信息,如包名、版本、以及使用的 Rust "edition"(版本纪元,可以理解为语言的大版本,"2021" 是目前最新的)。
[dependencies]
*部分:这是管理项目依赖的地方。当你需要使用第三方库(在 Rust 中称为 "crates")时,你只需在这里声明它们的名称和版本,
cargo` 就会自动为你下载和编译它们。 -
构建和运行项目:
进入新创建的hello_cargo
目录:
bash
cd hello_cargo
现在,体验cargo
的魔力。只需要一个命令:
bash
cargo run
cargo
会自动完成以下所有工作:- 检查
Cargo.toml
文件。 - 调用
rustc
编译src/main.rs
文件。 - 如果编译成功,它会直接运行生成的可执行文件。
你会看到和之前完全一样的输出:
Hello, world!
cargo
还在项目根目录下创建了一个target
文件夹,所有编译的中间文件和最终的可执行文件都存放在这里。cargo run
实际上是两个步骤的结合:cargo build
(构建) 和直接运行。你也可以分开执行它们:
*cargo build
:只编译项目,不运行。可执行文件位于target/debug/
目录下。
*cargo build --release
:以优化模式进行编译,生成的可执行文件性能更高,但编译时间更长。文件位于target/release/
目录下。
*cargo check
:这是一个非常有用的命令。它会快速检查你的代码是否存在编译错误,但不会生成任何可执行文件,速度非常快,适合在编码过程中频繁使用。 - 检查
现在你应该明白了,为什么 cargo
是 Rust 开发不可或缺的一部分。从现在开始,我们所有的新项目都将使用 cargo
来创建和管理。
3. 配置你的开发环境:IDE 与编辑器
拥有一个配置良好的代码编辑器或集成开发环境(IDE)能极大地提升你的编程效率。对于 Rust 而言,现代编辑器通过与 rust-analyzer
的集成,提供了世界级的开发体验。
rust-analyzer
是一个实现了语言服务器协议(LSP)的后台服务。它会实时分析你的代码,并为你的编辑器提供以下功能:
* 智能代码补全
* 跳转到定义、查找引用
* 实时错误诊断和建议(在你保存文件时就会显示错误)
* 代码重构
* 类型提示和文档悬浮提示
* ……等等
强烈推荐的开发环境是 Visual Studio Code (VS Code)。
3.1. 配置 VS Code
- 安装 VS Code:如果你还没有安装,请从其官网下载并安装。
- 安装
rust-analyzer
扩展:- 打开 VS Code。
- 点击左侧活动栏的“扩展”图标(或按
Ctrl+Shift+X
)。 - 在搜索框中输入
rust-analyzer
。 - 找到由
The Rust Programming Language
官方发布的扩展,点击“安装”。
安装完成后,当你用 VS Code 打开一个 cargo
项目时(比如我们刚才创建的 hello_cargo
文件夹),rust-analyzer
会自动启动并开始分析你的代码。你将立刻享受到所有现代语言的便利功能。
其他推荐的 VS Code 扩展:
* crates: 帮助你管理 Cargo.toml
中的依赖,可以显示依赖的最新版本。
* Even Better TOML: 为 Cargo.toml
等 TOML 文件提供更好的语法高亮和验证。
* CodeLLDB: 如果你需要在 VS Code 中进行断点调试,这是一个非常好的调试器扩展。
3.2. 其他编辑器选项
- JetBrains IDEs (IntelliJ IDEA, CLion, RustRover):JetBrains 全家桶通过官方的 Rust 插件 提供了卓越的 Rust 支持。这个插件内置了
rust-analyzer
的功能,并与 IDE 深度集成,提供了强大的重构和调试工具。特别是 CLion 和新推出的 RustRover,它们对 Rust 的调试支持非常出色。 - Neovim / Vim / Emacs:对于这些经典编辑器的用户,同样可以通过配置 LSP 客户端(如
coc.nvim
,nvim-lspconfig
,eglot
)来与rust-analyzer
集成,获得不输于 VS Code 的开发体验。
选择哪款编辑器取决于你的个人偏好,但关键是确保 rust-analyzer
已经正确安装和配置。
总结
在本章中,我们从零开始,成功地搭建了一个完整的 Rust 开发环境。让我们回顾一下我们取得的成就:
1. 我们了解并安装了 Rust 的官方工具链管理器 rustup
。
2. 我们学会了如何使用 rustup
来管理 Rust 版本和组件。
3. 我们验证了 rustc
和 cargo
已成功安装。
4. 我们通过手动调用 rustc
和使用 cargo
两种方式,编写并运行了经典的 “Hello, world!” 程序,并深刻体会到了 cargo
的强大与便捷。
5. 我们配置了 VS Code 和 rust-analyzer
,为后续的编码学习铺平了道路,确保了流畅的开发体验。
你现在拥有了探索 Rust 世界所需的一切工具。你的电脑已经准备好编译和运行任何 Rust 程序。
在下一章中,我们将正式进入 Rust 语言本身的学习,从最基础的变量、数据类型、函数和控制流开始。准备好迎接挑战,开启一段充满乐趣和收获的编程之旅吧!