提示:建议在学习本章之前学习上一节的内容。详情请订阅本专栏。
文章目录
- 前言
- 一、使用 Cargo 创建项目
-
- 1. 新建项目
- 2. 指定版本管理系统
- 3. Cargo.toml配置文件
- 二、构建和运行 Cargo 项目
-
- 1.构建项目
-
- Cargo.lock文件
- 2.运行项目
- 3.检查代码
- 三、发布 Cargo 项目
- 总结
前言
我们学习了上一篇文章。Rust的Hello World,并对其进行了详细的分析,相信您已经学会了,本节我们将使用Cargo创建一个Hello World,并详细分析。
我们上次写的Hello World它是最简单的程序,不依赖。想想看,如果你在开发大型项目时引用其他图书馆,或者管理一些文件来构建,那么编译就成了一个复杂的问题。Rust正式为我们提供Cargo管理这些项目,它可以做上面提到的一切,并使用它们Cargo进行管理将会使你开发变得更容易,我们以后的开发用到的就全是Cargo了。
Cargo 是 Rust 构建系统和包管理器。 Rustacean 们使用 Cargo 管理他们 Rust 项目,因为它可以为您处理许多任务,如构建代码、下载依赖库和编译这些库。
Rustacean
是指在电脑前学习的大佬。
一、使用 Cargo 创建项目
首先,检查你的电脑是否安装了Cargo,当然,如果安装正常,必须已经安装好了。
cargo --version
如下返回意味着安装没有问题,否则建议您重新安装Rust。
1. 新建项目
以下命令用于新建一个项目
cargo new hello_cargo
其中hello_cargo
是新项目的名称,运行后如下图所示创建成功。 进入刚刚创建的项目录,可以看到目录结构如下,
│ .gitignore │ Cargo.toml │ └─src main.rs
- 是个git忽略文件列表,上传到git并非所有文件都必须上传到github是的。这也提醒我们,cargo为我们创造了一个github仓库。
- 是项目的配置文件,包括项目名称、依赖等内容,后面详细介绍。
- 项目自带创建Hello World文件。
2. 指定版本管理系统
cargo默认为我们创造了它git仓库,因为git除此之外,它用的管理系统,cargo还可以指定版本管理系统使用 --vcs
指定或切换版本管理系统的参数,如果文件夹已经有仓库,则默认不会创建仓库。
cargo new --vcs=git
--vcs
的可选项为
可选项 |
---|
git, hg, pijul, fossil, none |
3. Cargo.toml配置文件
Cargo.toml使用文件TOML配置格式,在TOML格式中
[section]
称为片段标题- name = value 标题下的配置项的形式配置
文本编辑器可以打开项目配置文件,内容如下
[package] name = "hello_cargo" version = "0.1.0" edition = "2021" [dependencies]
[package]
是管理当前项目包的信息的 –name
表示项目名称为hello_cargo –version
项目版本号为0.1.0 –edition
表示项目使用Rust版本号[dependencies]
依靠信息管理当前项目包。 Rust 在中间,代码包被称为crates
。这个项目不需要其他项目crate
,然而,这个片段将用于后面的项目。
二、构建和运行 Cargo 项目
使用cargo操作程序不同于我们的手动操作程序。手动操作程序需要先编译,然后再操作cargo我们可以一步一步这个操作,cargo这个过程自动为我们管理。
1.构建项目
建设项目使用下列命令,
cargo build
编译成功如下图所示, 此时cargo为我们编译项目,找到hello_cargo\target\debug
目录中可以看到我们编译的可执行文件,与我们命令执行文件相同
可执行程序和以前一样运行
Cargo.lock文件
如果项目编译正常,将生成一个Cargo.lock
本文件记录了项目所依赖的实际版本。永远
也不需要碰这个文件,让 Cargo 处理它。
2.运行项目
使用cargo使用下列命令运行项目
cargo run
操作效果与我们的手动操作相同,run
编译和操作步骤将自动执行,我们已经在上面编译,所以在这里操作时不需要再编译,cargo它变得非常智能。 再次修改后,将有一个编译过程
3.检查代码
Cargo该命令还提供了一速检查代码以确保其能够编译的代码检查工具,但不生成可执行文件:
cargo check
当我们执行,没有报错,说明代码没有题。
三、发布 Cargo 项目
发布项目时,我们使用以下命令来优化编译项目,以让 Rust 代码运行的更快,不过启用这些优化也需要消耗更长的编译时间。
cargo build --release
- Debug是为了开发,你需要经常快速重新构建;
- Release是为用户构建最终程序,它们不会经常重新构建,并且希望程序运行得越快越好。
最后你可以在target/release
下找到最终的可执行文件。
总结
我们回顾下已学习的 Cargo 内容:
- 可以使用 cargo new 创建项目。
- 可以使用 cargo build 构建项目。
- 可以使用 cargo run 一步构建并运行项目。
- 可以使用 cargo check 在不生成二进制文件的情况下构建项目来检查错误。
- 有别于将构建结果放在与源码相同的目录,Cargo 会将其放到 target/debug 目录。