|
|
|
|
# 1
|
|
|
|
|
|
|
|
|
|
## rust语言
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
rustup docs --book 打开本地文档
|
|
|
|
|
rustc --version 查看rust版本
|
|
|
|
|
rustup update 更新rust
|
|
|
|
|
rustup self uninstall 卸载rust和 rustup
|
|
|
|
|
cargo --version 查看cargo版本
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
安装时需要 c++ build tools !!, cargo回合rust一同安装。
|
|
|
|
|
|
|
|
|
|
## rust风格
|
|
|
|
|
|
|
|
|
|
1. Rust风格默认为四个空格缩进,而不是制表符。
|
|
|
|
|
1. println!调用Rust宏。若调用一个函数应输入println(不带!)。
|
|
|
|
|
1. 以分号结尾。
|
|
|
|
|
|
|
|
|
|
## Compiling and Running
|
|
|
|
|
|
|
|
|
|
1. 运行前需要先使用Rust编译器进行编译,方法是使用rustc命令: rustc xx.rs
|
|
|
|
|
|
|
|
|
|
2. 在linux和macOS上会生成两个文件 xx.rs、xx; 而在window下会产生三个文件,包含源代码、可执行文件(在windows上为xx.exe,在其他所有平台上都为main),以及使用windows时包含调试信息且扩展名为.pdb的文件![image-20221227111944833](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20221227111944833.png)
|
|
|
|
|
|
|
|
|
|
运行方式:
|
|
|
|
|
|
|
|
|
|
![image-20221227112810717](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20221227112810717.png)
|
|
|
|
|
|
|
|
|
|
## cargo
|
|
|
|
|
|
|
|
|
|
简单的程序可以使用rustc进行编译,但实际开发中,更多是使用Cargo来构建rust系统和包管理器,可以使用cargo构建代码、下载代码所依赖的库以及构建这些库(库一般称为dependencies)
|
|
|
|
|
|
|
|
|
|
### 使用cargo创建项目
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
$ cargo new hello_cargo
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
![image-20221227114101592](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20221227114101592.png)
|
|
|
|
|
|
|
|
|
|
![image-20221227114108663](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20221227114108663.png)
|
|
|
|
|
|
|
|
|
|
cargo new 如果您在现有的Git存储库中运行,则不会生成Git文件;您可以使用覆盖此行为cargo new --vcs=git。 --vcs参数
|
|
|
|
|
|
|
|
|
|
![image-20221227114619246](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20221227114619246.png)
|
|
|
|
|
|
|
|
|
|
![image-20221227114807597](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20221227114807597.png)
|
|
|
|
|
|
|
|
|
|
### TOML格式
|
|
|
|
|
|
|
|
|
|
TOML(Tom's Obvious, Minimal Language)格式,是Cargo的配置格式。
|
|
|
|
|
|
|
|
|
|
![image-20221227115110315](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20221227115110315.png)
|
|
|
|
|
|
|
|
|
|
[package]为一个节标题,表示以下语句正在配置包,
|
|
|
|
|
|
|
|
|
|
接下来的三行设置 Cargo 编译程序所需的配置信息:名称、版本和要使用的 Rust 版本。
|
|
|
|
|
|
|
|
|
|
[dependencies]是您列出任何项目依赖项的部分的开头
|
|
|
|
|
|
|
|
|
|
rust中代码包被称为crate。此项目暂不需要其他crate
|
|
|
|
|
|
|
|
|
|
### Compiling and Running
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
cargo build
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
此命令在target/debug/hello_cargo(或 Windows 上的target\debug\hello_cargo.exe)而不是当前目录中创建一个可执行文件。
|
|
|
|
|
|
|
|
|
|
![](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20221227134259018.png)
|
|
|
|
|
|
|
|
|
|
同时首次使用cargo build后也会在顶层创建一个新文件:Cargo.lock。该文件用于跟踪项目中依赖项的确切版本。此文件永远不需要手段更改;
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
cargo run
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
使用cargo run 不需要到二进制文件的整个路径,更便捷。若修改了源代码,cargo会执行一次 rebuild 操作。
|
|
|
|
|
|
|
|
|
|
![image-20221227140959687](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20221227140959687.png)
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
cargo check
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
此命令快速检查您的代码以确保它可以编译但不会生成可执行文件。可以在cargo build前使用此命令,保证项目是可编译的,节省试错时间。
|
|
|
|
|
|
|
|
|
|
### Building for Release
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Building for Release
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
*此命令将在target/release*而不是*target/debug*中创建可执行文件,用于发布项目。
|
|
|
|
|
|
|
|
|
|
![image-20221227142421493](C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20221227142421493.png)
|