文章目录
- Rust语言入门第二篇-Cargo教程
- 一,Cargo 是什么
- 二,Cargo教程
- Cargo.toml文件
- src/main.rs 文件
- 构建并运行Cargo项目
Rust语言入门第二篇-Cargo教程
本节提供对cargo命令行工具的快速了解。我们演示了它为我们生成新包的能力,它在包内编译crate的能力,以及它运行生成的程序的能力。
一,Cargo 是什么
Cargo 是 Rust 的官方构建系统和包管理器。它负责管理 Rust 项目的依赖项、构建项目以及管理项目的配置。
二,Cargo教程
要使用 Cargo 创建一个新的 Rust 项目,请使用Cargo new
cargo new hello_world
第一行命令新建了名为 hello_world 的目录和项目。我们将项目命名为 hello_world,同时 Cargo 在一个同名目录中创建项目文件。
非常抱歉,我创建了两个项目 hello_world以及hello_cargo我后面进错文件了,就讲错就错吧
cd 是命令行中常用的命令,用于改变当前工作目录。
执行cd 命令 输入文件名称 使进入hello_cargo文件目录中
cd hello_cargo
tree . 是一个命令,用于在命令行中显示当前目录下的目录结构,以树状图的形式展示。在这个命令中,. 表示当前目录。执行 tree . 命令会递归地列出当前目录下的所有文件和子目录,并以树状结构展示它们的层次关系。
tree .
并列出文件。将会看到 Cargo 生成了两个文件和一个目录:一个 Cargo.toml 文件,一个 src 目录,以及位于 src 目录中的 main.rs 文件。
Cargo.toml文件
在上述我们创建了项目,接下来我们根据文件地址去找到该文件,选用文本编辑器打开 Cargo.toml 文件
[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
这个 Cargo 文件描述了一个 Rust 项目的元数据和依赖项。下面是对文件内容的解析:
-
[package]
是一个片段(section)标题,表示接下来的内容是关于项目包的配置。:name = "hello_world"
:指定了项目的名称为 “hello_world”。version = "0.1.0"
:指定了项目的版本号为 “0.1.0”。edition = "2021"
:指定了 Rust 编译器所使用的 Edition(版本),这里是 2021 Edition。
-
[dependencies]
部分:- 这个部分通常用于列出项目所依赖的外部库。在这个示例中,没有列出任何依赖项,意味着这个项目没有依赖其他外部库。
Cargo 文件还可以包含其他部分,比如 [workspace]
、[profile]
等,用于配置工作空间和编译器参数等。这些部分不是必需的,取决于项目的需要。
src/main.rs 文件
Cargo 为你生成了一个 “Hello, world!” 程序,Cargo 期望源文件存放在 src 目录中。
fn main() {
println!("Hello, world!");
}
这段 Rust 代码定义了一个程序的入口点(main 函数),并在控制台打印 “Hello, world!” 消息。
让我解释一下代码的具体含义:
-
fn main()
:这是 Rust 程序的入口点。在 Rust 中,每个可执行程序必须有一个名为main
的函数作为入口点。这个函数不接受任何参数,并且不返回任何值。 -
{}
:这是代码块的开始和结束标记,包含了main
函数的实际代码。 -
println!("Hello, world!");
:这是一个 Rust 宏调用,用于在控制台输出文本。println!
是 Rust 标准库中的一个宏,用于格式化打印到标准输出流(通常是终端)。在这里,它打印了 “Hello, world!” 消息。
因此,这段代码的含义是:定义了一个程序的入口点 main
函数,并在程序执行时打印了 “Hello, world!” 消息到控制台。
构建并运行Cargo项目
cargo build
cargo build
是 Rust 项目管理工具 Cargo 提供的一个命令,用于编译 Rust 项目。
具体而言,cargo build
命令的含义是:
-
编译项目代码:Cargo 会根据项目根目录下的
Cargo.toml
文件中的配置信息,编译整个 Rust 项目的源代码。 -
生成可执行文件或库:根据项目类型(可执行程序或库),Cargo 会生成对应的可执行文件(通常在
target/debug
目录下)或者库文件(通常在target/debug
目录下),这取决于项目的配置和 Cargo.toml 文件中的指定。 -
处理依赖关系:如果项目依赖了其他的 Rust crate(包),Cargo 会自动下载并编译这些依赖,以确保项目的所有依赖都被正确处理和链接。
-
检查代码:Cargo 会在编译过程中执行各种检查,包括语法检查、类型检查、错误检查等,以确保代码的质量和正确性。
这个命令会创建一个可执行文件 target/debug/hello_cargo (在 Windows 上是 target\debug\hello_cargo.exe),而不是放在目前目录下。由于默认的构建方法是调试构建(debug build),Cargo 会将可执行文件放在名为 debug 的目录中。可以通过这个命令运行可执行文件:
$ ./target/debug/hello_cargo # 或者在 Windows 下为 .\target\debug\hello_cargo.exe
我们也可以使用编译然后运行它,所有这些都在一个步骤中完成:cargo run
cargo run