1、cargo简介 Cargo 是 Rust 的构建系统和包管理器。?多数 Rustacean 们使? Cargo 来管理他们的 Rust 项?,因为它可以为你处理很多任务,?如构建代码、下载依赖库并编译这些库。(我们把
1、cargo简介Cargo 是 Rust 的构建系统和包管理器。?多数 Rustacean 们使? Cargo 来管理他们的 Rust 项?,因为它可以为你处理很多任务,?如构建代码、下载依赖库并编译这些库。(我们把代码所需要的库叫做 依赖(dependencies))。 查看cargo版本
我这里可以看到具体的版本好和日期
2、使用cargo创建项目
第一行命令,创建了一个名为hello_cargo的目录和项目。 进入目录可以看到以下目录:
2.1、关于Cargo.toml
2.2 、关于src/main.rs
? Cargo为我们自动生成一个“Hello,world!” 程序,正如我们之前编写的示例helloWorld一样,不同的是它将main.rs文件放到了src目录下面。 ? Cargo 期望源文件存放在src目录中。项目根目录只存放 README、license信息、配置文件和其他跟代码无关的文件。使用Cargo帮助你保持项目干净整洁,一切井井有条。 ? 当然如果没有使用Cargo创建的项目,我们也可以转化为一个Cargo项目,比如我之前的HelloWorld项目。我们可以新建目录src、新建源文件main.rs在src目录下、以及创建一个合适的Cargo.toml 文件。 3、构建Cargo项目我们现在已经使用Cargo创建好了hello_cargo项目,现在我们进入项目目录
然后我们可以使用Cargo中的build命令开始构建项目
执行命令后,会打印出如下结果:
到这里我们首次运行cargo build成功,你会发现此时项目目录中多出了一个target目录和Cargo.lock文件。
最后我们可以运行构建成功后生成的可执行文件
如果一切顺利,终端上应该打印出Hello,world! 。
4、构建并运行Cargo项目? 在认识了cargo build命令,我们知道它是用来构建Cargo项目的,但是运行项目需要我们自己去target目录里面去找到可执行文件,并执行它。 ? 接下来我们来认识一个新的命令cargo run 。它可以构建并运行构建后的可执行文件。
打印结果:
? 相信到了这里,我们心中一定明白这个命令,今后会是我们的长期合作伙伴,魂牵梦萦那种。 ? 当然有必要说明一下,因为之前我们已经使用cargo build 命令构建了hello_cargo项目 , 所以此时执行的 cargo run 命令并没有重新编译,而是直接运行了可执行文件,打印出了Hello,world! 。 ? 接下来我们看看,改变了源文件在执行该命令会是什么结果:
? 这里我们看到结果里面有Compiling、Finished、Running 字样,所以我们知道这次它重新编译了该项目,并执行了可执行文件,打印出了新的结果:Hello, Rust world! 。 5、检查代码是否可编译? 接下来我们认识应该新的命令cargo check , 该命令可以快速检查代码确保可以编译,但并不产生可执行文件:
如果一切顺利控制台会出现以上结果。 ? 到了这里可能有人会问,为什么不直接执行 cargo build、cargo run 命令呢?这样还可以直接生成可执行文件,多方便。
? 所以我们要习惯使用cargo check 定期检查我们的代码是否可编译,避免不必要的后顾之忧。 6、发布(release)构建? 当项?最终准备好发布时,可以使? cargo build --release 来优化编译项?。这会在target/release ?不是 target/debug 下?成可执??件。这些优化可以让 Rust 代码运?的更快,不过启?这些优化也需要消耗更?的编译时间。这也就是为什么会有两种不同的配置:?种是为了开发,你需要经常快速重新构建;另?种是为?户构建最终程序,它们不会经常重新构建,并且希望程序运?得越快越好。如果你在测试代码的运?时间,请确保运? cargo build --release 并使? target/release 下的可执??件进?测试。 ? 对于运行发行版本我们可以使用 cargo run --release 命令
7、把Cargo当作习惯? 对于简单项目,Cargo并不比rustc提供了更多的优势,不过随着开发深入,最终会证明它的价值,?旦程序壮?到由多个?件组成,亦或者是需要其他的依赖,让 Cargo 协调构建过程就会简单得多。 ? 即便 hello_cargo 项??分简单,它现在也使?了很多在你之后的 Rust ?涯将会?到的实??具。其实,要在任何已存在的项?上?作时,可以使?如下命令通过 Git 检出代码,移动到该项??录并构建:
了解更多关于Cargo可以查阅Cargo相关文档 8、总结本章我们学习了Cargo的相关内容:
使? Cargo 的?个额外的优点是,不管你使?什么操作系统,其命令都是?样的。所以从现在开始本书将不再为 Linux 和 macOS 以及 Windows 提供相应的命令。 |
2022-11-05
2022-11-05