🎯前言
Cargo 是 Rust 的构建系统和包管理器。大多数 Rustacean 们使用 Cargo 来管理他们的 Rust 项目,因为它可以为你处理很多任务,比如构建代码、下载依赖库并编译这些库。(我们把代码所需要的库叫做 依赖(dependencies))。
- Cargo 是Rust的构建系统和包管理工具
-构建代码、下载依赖的库、构建这些库...
- 安装Rust的时候会自动安装Cargo
-cargo --version:用于验证cargo是否正确的安装。
🎯使用cargo创建项目
创建项目:cargo new hello_cargo
-项目名称也是hello_cargo
-会创建一个新的目录hello_cargo包括:
- Cargo.toml
- src目录
-main.rs
- 初始化一个新的Git仓库,gitignore
-可以使用其他的VCS或不使用VCS;cargo new的时候使用—vcs这个flag
🎯cargo.toml
- 是cargo的配置格式
- 【pacakge】:是一个区域标题,表示下方内容使用配置包(package)的
-name,项目名
-version,项目版本
-authors,项目作者
-edition,使用的Rustv版本
- 【deoendencies】,另一个区域的开始,他会列出项目的依赖项。
- 在Rust里面,代码的包称作crate
🎯src/main.rs
- cargo生成的main.rs在src目录下
- 而Cargo.toml在项目顶层下
- 源代码都应该在src目录下
- 顶层目录下可以放置:README、许可信息、配置文件和其他与程序源码无关的文件
- 如果创建项目时没有使用cargo,也可以把项目转化为使用cargo;
-把源代码文件移到src下
-创建Cargo.toml并填写相应的配置
🎯创建Cargo项目
cargo build:
这个命令会创建一个可执行文件 target/debug/hello_cargo (在 Windows 上是 target\debug\hello_cargo.exe),而不是放在目前目录下。由于默认的构建方法是调试构建(debug build),Cargo 会将可执行文件放在名为 debug 的目录中。可以通过这个命令运行可执行文件:
$ ./target/debug/hello_cargo # 或者在 Windows 下为 .\target\debug\hello_cargo.exe Hello, world!
如果一切顺利,终端上应该会打印出 Hello, world!。首次运行 cargo build 时,也会使 Cargo 在项目根目录创建一个新文件:Cargo.lock。这个文件记录项目依赖的实际版本。这个项目并没有依赖,所以其内容比较少。你自己永远也不需要碰这个文件,让 Cargo 处理它就行了
🎯构建和运行cargo项目
cargo run:编译代码+执行结果
使用 cargo run 可以实现与cargo build完全相同的效果,而且要方便得多,所以大多数开发者会使用 cargo run。
注意这一次并没有出现表明 Cargo 正在编译 hello_cargo 的输出。Cargo 发现文件并没有被改变,所以它并没有重新编译,而是直接运行了可执行文件。
🎯cargo check
该命令快速检查代码确保其可以编译,但并不产生可执行文件
解释:通常 cargo check 要比 cargo build 快得多,因为它省略了生成可执行文件的步骤。如果你在编写代码时持续的进行检查,cargo check 可以让你快速了解现在的代码能不能正常通过编译!为此很多 Rustaceans 编写代码时定期运行 cargo check 确保它们可以编译。当准备好使用可执行文件时才运行 cargo build
🎯参考:发布构建
当项目最终准备好发布时,可以使用 cargo build --release 来优化编译项目。这会在 target/release 而不是 target/debug 下生成可执行文件。这些优化可以让 Rust 代码运行的更快,不过启用这些优化也需要消耗更长的编译时间。这也就是为什么会有两种不同的配置:一种是为了开发,你需要经常快速重新构建;另一种是为用户构建最终程序,它们不会经常重新构建,并且希望程序运行得越快越好。如果你在测试代码的运行时间,请确保运行 cargo build --release 并使用 target/release 下的可执行文件进行测试。