构建一个cargo项目

让我们使用Cargo创建一个新项目,看看它与我们最初的“ Hello,world!”有何不同。回到您的项目目录(或您决定存储代码的任何位置)。然后,在任何操作系统上,运行以下命令:

  1. $ cargo new hello_cargo
  2. $ cd hello_cargo

第一个命令创建一个名为hello_cargo的新目录。我们已将项目命名为hello_cargo,并且Cargo在同名目录中创建其文件。
进入hello_cargo目录并列出文件。您会看到Cargo为我们生成了两个文件和一个目录:一个Cargo.toml文件和一个其中带有main.rs文件的 src目录。
它还已经初始化了一个新的Git存储库以及一个.gitignore文件。如果您cargo new在现有的Git存储库中运行,则不会生成Git文件;您可以使用来覆盖此行为cargo new --vcs=git

注意:Git是常见的版本控制系统。您可以cargo new通过使用--vcs标志更改为使用其他版本控制系统或不使用任何版本控制系统。运行cargo new --help以查看可用的选项。

在您选择的文本编辑器中打开Cargo.toml。它的外观应类似于清单1-2中的代码。
文件名:Cargo.toml

  1. [package]
  2. name = "hello_cargo"
  3. version = "0.1.0"
  4. authors = ["Your Name <you@example.com>"]
  5. edition = "2018"
  6. [dependencies]

清单1-2:由生成的Cargo.toml的内容cargo new
该文件为TOML汤姆的最简单语言)格式,这是Cargo的配置格式。
第一行[package]是一个节标题,指示以下语句正在配置程序包。当我们向该文件添加更多信息时,我们将添加其他部分。
接下来的四行设置了Cargo编译程序所需要的配置信息:名称,版本,编写者以及要使用的Rust版本。货运从您的环境中获取您的姓名和电子邮件信息,因此,如果该信息不正确,请立即修复该信息,然后保存文件。我们将edition在附录E中讨论密钥。
最后一行[dependencies]是该部分的开头,您可以列出项目的任何依赖项。在Rust中,代码包称为 板条箱。对于该项目,我们不需要任何其他包装,但是在第2章的第一个项目中,我们将使用此依赖项部分。
现在打开src / main.rs并查看:
文件名:src / main.rs

  1. fn main() {
  2. println!("Hello, world!");
  3. }

货运产生了一个“你好,世界!” 就像清单1-1中编写的那样!到目前为止,我们之前的项目与Cargo生成的项目之间的区别在于Cargo将代码放置在src 目录中,而我们在顶层目录中有一个Cargo.toml配置文件。
Cargo希望您的源文件位于src目录中。顶级项目目录仅用于自述文件,许可证信息,配置文件以及与您的代码无关的其他任何内容。使用货运可以帮助您组织项目。一切都有一个地方,一切都在原地。
如果您启动了一个不使用Cargo的项目,就像我们对“ Hello,world!”所做的那样。项目,您可以将其转换为使用Cargo的项目。将项目代码移到src目录中,并创建一个适当的Cargo.toml 文件。


cargo常见命令

1. cargo build

此命令在target / debug / hello_cargo(或 Windows上的target \ debug \ hello_cargo.exe)中而非当前目录中创建一个可执行文件。
运行cargo build的第一次也造成货物创建在顶层的新文件:Cargo.lock。此文件跟踪项目中依赖项的确切版本。该项目没有依赖项,因此文件有点稀疏。您将不再需要手动更改此文件。cargo为您管理其内容。
可选参数 —release
此命令会在 target / release 下创建类似于debug的文件
优化使您的Rust代码运行得更快,但是打开它们会延长程序编译的时间。这就是为什么有两个不同的配置文件的原因:一个用于开发,当您想要快速且频繁地重建时,另一个用于构建最终程序,您将提供给不会重复重建且运行速度与用户相同的用户可能。如果要对代码的运行时间进行cargo build --release基准测试,请确保使用target / release中的可执行文件运行和基准测试。

2. cargo run

我们只是使用构建了一个项目,cargo build然后使用运行它 ./target/debug/hello_cargo,但是我们也可以使用cargo run编译代码,然后在一个命令中全部运行生成的可执行文件:

  1. $ cargo run
  2. Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
  3. Running `target/debug/hello_cargo`
  4. Hello, world!

注意,这次我们没有看到表明Cargo正在编译的输出 hello_cargo。Cargo发现文件没有更改,因此只运行了二进制文件。如果您修改了源代码,那么Cargo将在运行项目之前重建项目,并且您将看到以下输出:

  1. $ cargo run
  2. Compiling hello_cargo v0.1.0 (file:///projects/hello_cargo)
  3. Finished dev [unoptimized + debuginfo] target(s) in 0.33 secs
  4. Running `target/debug/hello_cargo`
  5. Hello, world!

3. cargo check

此命令可快速检查您的代码以确保其可编译但不会产生可执行文件。

4. cargo doc —open

此命令可以根据项目中的依赖,来生成对应的文档。并在浏览器中打开


参考

https://doc.rust-lang.org/book/ch01-03-hello-cargo.html