cargo工具
cargo是什么
Cargo 是 Rust 的构建系统和包管理器。大多数 Rustacean 们使用 Cargo 来管理他们的 Rust 项目,因为它可以为你处理很多任务,比如构建代码、下载依赖库并编译这些库。
cargo常见四剑客
- cargo new
- cargo check
- cargo build
- cargo run
创建Rust新项目
为什么要有项目?因为当我们的Rust代码量多了之后会选择使用多文件的写法来管理项目,这样比较方便管理这个项目,让这个项目变得井井有条。其次就是可以使用一个统一的工具来规范化我们的Rust程序的项目。
在命令行中输入cargo new 项目名, 则可得到一个新的Rust项目。
例如:
cargo new hello_cargo
则可以生成一个名为hello_cargo的项目,在操作系统层面它就是一个文件夹,然后里面还有其他文件——用于管理项目的版本和发布到github的一些相关的配置信息等。
通过cargo new指令生成的Rust项目,则在项目的内部有一个src文件夹——专门用来存储Rust源文件的文件夹。这样管理起来就特别的方便。
在src文件夹下面有个默认生成的main.rs文件,这个是通过cargo new生成的项目默认生成的Rust源文件功能是HelloWolrd程序。
检查项目是否可以编译通过
cargo给开发者提供了一个可以检查项目的命令叫check,通过cargo check可以知道我们所写的项目是否可以编译通过,如果项目有错误,则不会通过编译,则不会生成可执行文件。这样就大大提升了项目的安全性。
构建项目
cargo给开发者提供了build指令,用来构建Rust项目的,这样就不用一直rustc来编译源文件,build指令的出现就大大简化了构建项目的难度。build指令包含check的功能,即在执行cargo build时,会先把check的功能做了,也就是先检查项目是否可以编译通过,如果编译不通过则打印出错误,如果编译通过了则生成可执行文件。
build和check相比,check只检查项目是否可以编译通过,而build除了完成check的功能外还会生成可执行文件这个功能。
使用cargo生成release版本的rust项目
一般程序开发时有两个版本,分别是debug版本和release版本。
二者的区别就是debug是带有调试信息的,所以它生成的可执行文件的体积会比较大。
release版本是不带有调试信息的,是将生成的可执行程序进行优化过后的,所以release版本在用户看来是运行得比较快的版本,又因为不带有调试信息,所以release版本的体积比较小。
Rust项目写好了之后可以通过cargo来生成release版本的可执行文件,它的命令如下:
cargo build --release
即,在cargo build的基础下在后面跟一个–release的选项即可构建release版本的Rust项目。
运行项目
cargo给开发者提供了一个run指令,用来构建并运行项目的。同样的run指令包含了build的功能,即在运行可执行文件之前,先把构建工作做了,然后生成可执行文件,才会运行它。如果项目没有任何改动,则run就直接运行可执行文件不会重新构建项目。