Rust 学习笔记 0

创建项目

$ cargo new world_hello

这样我们就创建了一个名为 world_hello 的项目。

Rust 项目主要分为两个类型:binlib,前者是一个可运行的项目,后者是一个依赖库项目,可以通过 --bin 或者 --lib 指定项目类型,项目默认为 bin 类型。

编译与运行

编译:

$ cargo build

编译并运行:

$ cargo run

编译出的可执行文件默认在 ./target/debug/ 目录下,这是因为我们在编译的时候默认采用 debug 模式,在这个模式下,Rust 编译器不会做任何的优化,只为了尽快的编译完成来提高开发效率,如果想要高性能的代码,则需要在命令后面添加 --release来编译:

  • cargo build --release
  • cargo run --release

如果只是想判断能不能过编译,而不需要可执行文件的话,可以使用速度更快的 check

$ cargo check

Cargo.toml

Cargo.tomlcargo 特有的项目数据描述文件。它存储了项目的所有元配置信息。

package 中记录了项目的描述信息:

1
2
3
4
[package]
name = "world_hello"
version = "0.1.0"
edition = "2021"
  • name 是当前项目名称
  • version 是当前项目的版本,新项目默认为 0.1.0
  • edition 是当前项目使用的 Rust 大版本

dependencies 中记录了项目的依赖项,主要有以下三类:

  • 基于 Rust 官方仓库 crates.io,通过版本说明来描述
  • 基于项目源代码的 git 仓库地址,通过 URL 来描述
  • 基于本地项目的绝对路径或者相对路径,通过类 Unix 模式的路径来描述

具体写法如下:

1
2
3
4
5
[dependencies]
rand = "0.3"
hammer = { version = "0.5.0"}
color = { git = "https://github.com/bjz/color-rs" }
geometry = { path = "crates/geometry" }

Cargo.lock

Cargo.lock 文件是 cargo 工具根据同一项目的 toml 文件生成的项目依赖详细清单,因此我们一般不用修改它,只需要修改 Cargo.toml 就行了。

当项目是一个可运行的程序时,需要把 Cargo.lock 上传到 git 仓库,如果项目是一个依赖库,那就把它添加到 .gitignore 中。