你的第一个 Cargo 项目

RustBeginner
立即练习

简介

Rust 程序通常使用 Cargo 进行组织和运行。Cargo 是 Rust 的项目与构建工具。在本实验中,你将在 Linux 终端中完成一个小型 Cargo 项目。不要求你具备终端、编辑器或 Rust 的使用经验。

你将学习如何进入项目目录、使用 nano 编辑 Rust 源文件、让 Cargo 检查代码,以及运行完成后的程序。本实验会同时检查你的源代码和程序的精确输出。

进入项目并编辑源代码

在本步骤中,你将找到准备好的项目,并使用 nano 完成第一次简单的 Rust 编辑。

终端是用于输入命令的文本区域。命令是给计算机执行的指令。先点击终端内部,使其获得键盘焦点,然后输入以下命令并按 Enter:

pwd

pwd 表示 print working directory,即打印当前工作目录。「目录」是文件夹的另一种称呼。输出会显示你当前所在的文件夹,通常是 /home/labex。

接下来,列出该文件夹中的项目:

ls

ls 表示 list,即列出内容。你应该会看到一个名为 project 的文件夹。

使用 cd(即 change directory,切换目录)进入准备好的 Rust 项目。该路径以 / 开头,因此它是一个绝对路径:它从文件系统顶层开始指定位置,而不是从当前目录开始指定。

cd /home/labex/project/hello-rust

cd 成功后,终端通常不会显示任何内容。列出项目中的内容:

ls

你应该会看到 Cargo.toml 和 src。Cargo 会读取 Cargo.toml,以获取软件包名称、版本、Rust edition 和依赖项。src 目录存放 Rust 源代码;此程序从 src/main.rs 开始运行。

使用适合初学者的终端文本编辑器 nano 打开源文件:

nano src/main.rs

src/main.rs 是一个相对路径。因为它不以 / 开头,终端会在当前目录 /home/labex/project/hello-rust 中查找该文件。这就是为什么要先使用 cd 进入项目。

文件会显示在终端中。使用方向键移动光标。只修改五个下划线字符,使该行变为:

    println!("Hello from LabEx!");

在 nano 底部,^ 符号表示 Ctrl 键。按 Ctrl+O 保存文件(按住 Ctrl,再按 O),然后按 Enter 确认文件名。按 Ctrl+X 退出。

重新打开同一个文件,确认保存操作已经将修改写入磁盘:

nano src/main.rs

确认该行包含 Hello from LabEx!。你不需要再次编辑,因此按 Ctrl+X 退出。每当你不确定编辑器中的修改是否已保存时,重新打开已保存的文件都是一种有效的检查方法。

不再次打开编辑器,直接在终端中显示已保存的文件:

cat src/main.rs

cat 会在终端中打印文件内容。与 nano 不同,它只显示文件,不提供编辑界面。确认你看到了 Hello from LabEx!,并且消息中没有下划线。

添加消息并检查代码

在本步骤中,你将理解这个小程序,添加一行代码,并让 Cargo 检查代码中的错误。

你的终端现在应该仍位于 /home/labex/project/hello-rust。如果不确定,可以使用 pwd 查看当前目录。再次打开源文件:

nano src/main.rs

程序中包含几个重要的 Rust 基本组成部分:

  • fn main() 定义了主函数,程序从这里开始运行。
  • 开头和结尾的大括号 { 和 } 包围函数中的指令。
  • println! 显示一行文本。! 表明 println! 是 Rust 的一个宏。
  • 双引号之间的文本是一个字符串字面量。
  • 分号 ; 表示这条指令结束。

将光标移动到现有 println! 行的末尾,按 Enter,然后在右大括号前添加第二条指令:

    println!("I am learning Rust with Cargo.");

现在,完整文件应如下所示:

fn main() {
    println!("Hello from LabEx!");
    println!("I am learning Rust with Cargo.");
}

按 Ctrl+O 保存,按 Enter 确认,然后按 Ctrl+X 退出。

现在让 Cargo 检查该软件包是否可以编译:

cargo check

cargo check 会分析代码并报告错误,但不会生成最终的可运行程序。第一次检查可能需要一点时间。成功时,输出末尾会有一行包含 Finished。

如果 Cargo 报错,请将你的文件与完整示例进行对比。特别注意引号、括号、分号和大括号。使用 nano src/main.rs 修正文件,保存后再次运行 cargo check。

使用 Cargo 运行程序

在本步骤中,你将构建并运行已经检查过的 Rust 程序。

在 /home/labex/project/hello-rust 中运行以下命令:

cargo run

cargo run 会执行两个相互关联的任务:将软件包编译为可运行程序,然后启动该程序。在显示程序自身的输出之前,Cargo 可能会打印几行构建状态信息。

在输出接近末尾的位置,你应该会看到以下两行:

Hello from LabEx!
I am learning Rust with Cargo.

再次使用 Cargo 运行程序,同时隐藏 Cargo 的状态信息:

cargo run --quiet

--quiet 选项会减少 Cargo 自身的输出,因此应该只显示程序输出的两行内容。现在,你已经完成了基本的 Cargo 工作流程:编辑、检查和运行。

总结

你已经在 Linux 终端中完成了导航,使用 nano 编辑并保存了 Rust 代码,认识了主函数和 println! 宏,检查了 Cargo 软件包,并运行了该软件包。你练习的「编辑—检查—运行」循环,是后续 Rust 项目的基础。