Rust 环境搭建(完整教程)

为什么选择 Rust?从零开始的环境搭建指南

在编程语言的世界里,Rust 正在迅速崛起。它既拥有 C 语言级别的性能,又具备现代语言的安全性保障。如果你曾因内存泄漏、空指针崩溃而头疼,那么 Rust 的所有权系统就像一位严格的管家,从源头杜绝这些问题的发生。对于初学者来说,Rust 的学习曲线虽有一定挑战,但只要打好基础,后续开发将事半功倍。而这一切的前提,就是顺利完成 Rust 环境搭建

想象一下,你要在一座陌生的城市安家落户,第一步不是装修房子,而是先找到合适的住所、接通水电。Rust 的环境搭建,正是这个“接通水电”的过程。只有配置好开发环境,你才能真正开始写代码、运行程序、调试错误。这篇文章将带你一步步完成整个流程,无论是 Windows、macOS 还是 Linux 用户,都能轻松上手。


安装 Rust 工具链:从 rustup 开始

Rust 官方推荐使用 rustup 工具来管理 Rust 的安装与版本更新。你可以把 rustup 想象成 Rust 的“包管理器 + 版本控制器”,它能帮你自动安装编译器、标准库和常用工具。

在终端中运行以下命令,开始安装:

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

这个命令会下载一个安装脚本并执行。你可能会看到一些提示信息,比如:

  • 询问是否继续安装(输入 1 确认)
  • 提示是否设置默认工具链(推荐选择默认选项)

安装完成后,系统会提示你运行以下命令来刷新环境变量:

source $HOME/.cargo/env

📌 注意:如果你使用的是 zsh(macOS 默认 shell),请使用 source $HOME/.cargo/env;如果是 bash,也可以直接运行。此步骤确保 rustccargo 命令能在终端中被识别。

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

rustc --version

输出示例:

rustc 1.75.0 (0323e2c1b 2023-12-15)

如果看到类似版本号,说明 Rust 编译器已成功安装。


验证 Cargo:Rust 的构建与依赖管理器

Cargo 是 Rust 的核心构建工具,它承担了编译、测试、依赖管理、文档生成等职责。你可以把它理解为 Rust 的“自动化流水线”。

验证 Cargo 是否安装成功:

cargo --version

预期输出:

cargo 1.75.0 (9071f9c30 2023-12-15)

接下来,我们创建一个简单的项目来测试整个流程。

cargo new hello_rust

执行后,你会看到一个新文件夹 hello_rust,里面包含:

  • src/main.rs:程序入口文件
  • Cargo.toml:项目的配置文件(类似 package.json 或 pom.xml)

进入项目目录:

cd hello_rust

现在运行程序:

cargo run

输出应为:

Hello, world!

说明cargo run 会自动执行编译 → 运行的完整流程。这是 Rust 开发中最常用的命令之一。


理解 Cargo.toml:项目的“配置说明书”

Cargo.toml 文件是 Rust 项目的核心配置文件,它定义了项目的元信息、依赖项和构建选项。它的格式类似于 TOML(Tom's Obvious, Minimal Language),非常简洁易读。

打开 Cargo.toml 文件,你会看到类似内容:

[package]
name = "hello_rust"
version = "0.1.0"
edition = "2021"

[dependencies]
  • name:项目名称,用于标识
  • version:版本号,遵循语义化版本规范(如 1.0.0)
  • edition:Rust 版本(2021 是目前推荐版本)

如果你想添加第三方库,比如 serde(用于序列化/反序列化),只需在 [dependencies] 下添加一行:

serde = "1.0"

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

💡 小贴士Cargo.toml 就像一个项目的“说明书”,它告诉 Rust 知道“该用什么工具”“该依赖哪些库”“怎么编译”。写好它,开发效率翻倍。


编写第一个 Rust 程序:从 main 函数开始

现在我们来深入理解 src/main.rs 文件中的代码。打开它,你会看到:

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

这行代码虽然简短,但包含了多个关键概念:

  • fn:定义函数的关键字,类似 Java 中的 public static void
  • main:程序的入口函数,所有可执行程序必须有且只有一个 main 函数
  • println!:宏(macro),用于打印内容到控制台。注意结尾的感叹号 !,这是 Rust 宏的标志

📌 注释说明

  • fn main() 告诉编译器这是程序的起点
  • println!("Hello, world!"); 会在运行时输出文本
  • 每行语句以分号 ; 结尾,这是 Rust 的语法要求

我们可以稍作修改,让程序更有趣:

fn main() {
    // 定义一个变量,类型推断为 i32(整型)
    let age = 25;

    // 使用占位符输出变量值
    println!("我今年 {} 岁", age);

    // 计算并输出
    let sum = 10 + 5;
    println!("10 + 5 = {}", sum);
}

运行 cargo run,你会看到:

我今年 25 岁
10 + 5 = 15

进阶提示:Rust 支持类型推断,你也可以显式声明类型,例如 let age: i32 = 25;,但通常不需要。


常见问题与解决方案:避免踩坑

在完成 Rust 环境搭建 的过程中,新手常遇到一些问题。这里总结几个常见情况及应对方法:

问题现象 可能原因 解决方案
command not found: rustc 环境变量未刷新 运行 source $HOME/.cargo/env
cargo 命令无效 rustup 未正确安装 重新运行安装脚本 `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs
网络超时下载失败 国内网络限制 使用镜像源:RUSTUP_DIST_SERVER=https://rsproxy.cn rustup.sh
编译失败提示缺少依赖 本地缺少构建工具 Windows 用户安装 Visual Studio Build Tools;macOS 安装 Xcode Command Line Tools

🔧 特别提醒:国内用户建议使用镜像源加速下载。在安装前设置环境变量:

export RUSTUP_DIST_SERVER=https://rsproxy.cn
export RUSTUP_UPDATE_ROOT=https://rsproxy.cn/rustup

然后运行安装脚本即可。


实际项目演练:创建一个简单的计算器

为了巩固所学,我们来创建一个简单的命令行计算器。

  1. 新建项目:
cargo new calculator
cd calculator
  1. 替换 src/main.rs 内容为:
fn main() {
    println!("=== 简易计算器 ===");
    println!("请输入第一个数字:");

    // 读取用户输入
    let mut input1 = String::new();
    std::io::stdin().read_line(&mut input1).expect("读取失败");

    // 将输入转为浮点数
    let num1: f64 = input1.trim().parse().expect("请输入有效数字");

    println!("请输入第二个数字:");
    let mut input2 = String::new();
    std::io::stdin().read_line(&mut input2).expect("读取失败");
    let num2: f64 = input2.trim().parse().expect("请输入有效数字");

    // 执行运算
    let sum = num1 + num2;
    let diff = num1 - num2;
    let product = num1 * num2;
    let quotient = num1 / num2;

    // 输出结果
    println!("{} + {} = {}", num1, num2, sum);
    println!("{} - {} = {}", num1, num2, diff);
    println!("{} × {} = {}", num1, num2, product);
    println!("{} ÷ {} = {}", num1, num2, quotient);
}
  1. 运行程序:
cargo run

输入两个数字,比如 103,你会看到四则运算结果。

🎯 学习重点:本例展示了 Rust 中的输入处理、类型转换、错误处理(expect)等实用技巧,是入门后进阶的绝佳练习。


总结:Rust 环境搭建,只是开始

完成了 Rust 环境搭建,你已经迈出了通往系统编程、高性能应用开发的第一步。从安装 rustup,到使用 cargo 创建项目,再到编写第一个程序,整个流程清晰且稳定。

记住,环境搭建不是终点,而是起点。Rust 的强大在于它的安全性和性能,而这一切都建立在良好的开发环境之上。随着你不断编写代码、探索标准库、引入第三方 crate,你会逐渐体会到 Rust 的魅力。

别怕出错,每一次编译错误都是学习的机会。当你看到 Hello, world! 成功输出时,那不仅是程序的运行,更是你编程旅程的一次确认。

现在,打开终端,从 cargo new my_first_rust 开始,写下你的第一个 Rust 程序吧。