https://www.rust-lang.org/zh-CN/learn
https://kaisery.github.io/trpl-zh-cn/title-page.html
版本查看
rustc --version
版本更新
rustup update
rust卸载
rustup self uninstall
本地文档
rustup doc
本地例子
file:///C:/Users/Administrator/.rustup/toolchains/stable-x86_64-pc-windows-msvc/share/doc/rust/html/rust-by-example/index.html
安装插件
Code Debugger
rust-analyzer
Rust Test Explorer
创建项目
cargo new hello_world
目录结构
Cargo.toml
[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
main.rs
fn main() {
println!("Hello, world!");
}
构建项目
在 hello_cargo 目录下,输入下面的命令来构建项目
cargo build
检查项目
在不生成二进制文件的情况下构建项目来检查错误。
cargo check
运行程序
在 hello_cargo 目录下,输入下面的命令来一步构建并运行项目
cargo run
* 正在执行任务: C:\Users\Administrator\.cargo\bin\cargo.exe run --package hello_world --bin hello_world
Compiling hello_world v0.1.0 (F:\project\LFC.Rust.Demo\hello_world)
Finished dev [unoptimized + debuginfo] target(s) in 0.33s
Running `target\debug\hello_world.exe`
Hello, world!
* 终端将被任务重用,按任意键关闭。
发布(release)构建
cargo build --release
包结构
Cargo 使用约定进行文件放置,以便轻松进入新的 Cargo 包:
.
├── Cargo.lock
├── Cargo.toml
├── src/
│ ├── lib.rs
│ ├── main.rs
│ └── bin/
│ ├── named-executable.rs
│ ├── another-executable.rs
│ └── multi-file-executable/
│ ├── main.rs
│ └── some_module.rs
├── benches/
│ ├── large-input.rs
│ └── multi-file-bench/
│ ├── main.rs
│ └── bench_module.rs
├── examples/
│ ├── simple.rs
│ └── multi-file-example/
│ ├── main.rs
│ └── ex_module.rs
└── tests/
├── some-integration-tests.rs
└── multi-file-test/
├── main.rs
└── test_module.rs
:::warning
- Cargo.toml并存储在包的根目录(包根目录)中。Cargo.lock
- 源代码进入目录。src
- 缺省库文件为 。src/lib.rs
- 默认的可执行文件是 。src/main.rs
- 其他可执行文件可以放在 中。src/bin/
- 基准测试在目录中。benches
- 示例位于目录中。examples
-
Cargo.toml vs Cargo.lock
:::warning
Cargo.toml是关于从广义上描述你的依赖关系,并且是由你写的。
- Cargo.lock包含有关依赖项的确切信息。它由Cargo维护,不应手动编辑。
:::
Cargo.toml是一个清单文件,我们可以在其中指定一堆关于包的不同元数据。例如,我们可以说我们依赖于另一个包:
test