天天看点

Rust的开发环境与工具

开发环境安装

无论使用何种系统, 均可以根据 Rust 官方网站提供的 rustup-init 工具完成 Rust 的安装. rustup-init 下载地址:

https://www.rust-lang.org/zh-CN/tools/install.

网站会自动识别你的操作系统并给出提示, 遵循网站提示一步一步执行即可.

当安装完成后, 可使用以下命令进行测试, 如果正确输出版本号则表明安装已经成功.

$ rustc --version
           
  • Tips:如果你使用的是 Linux 系统, 那么在 rustup-init 运行完成后它会在命令行中提示你将软件安装目录加入 PATH 环境变量中. 对于 Windows 系统来说不需要这一步.

开发工具

使用 vscode 并配置 rust-analyzer 插件在目前看来是一个比较好的选择.

  1. 安装 vscode
  2. 在 vscode 的插件市场中, 安装 rust-analyzer 插件

rust-analyzer 包含代码提示, 代码检查, 自动补全等多种功能. 你可能会注意到在插件市场中存在一个标了小星星的名字就叫 Rust 的插件, 它的下载量与安装量都远远高于 rust-analyzer, 那么为什么不选择使用它呢? 因为这个排名第一的 Rust 插件底层使用的是名为 rls 的 Rust 前端, 由于 rls 本身性能过于捉急, 在 2020 年的时候社区推出了 rust-analyzer 项目并旨在全面替换掉 rls. 在体验上, rust-analyzer 要远远好于 rls.

Hello World

Cargo 是 Rust 默认的项目管理工具, 它几乎会贯穿你的整个 Rust 开发周期, 包括项目的创建, 引入第三方库, 编译, 测试和运行等. 使用如下命令可以创建一个新的 Rust 工程,rust-learn为工程名称:

$ cargo new rust-learn
           
  • Cargo 默认会携带

    --bin

    参数, 这意味着该项目是一个二进制程序. 如果要创建一个库, 我们需要传递

    --lib

    .

生成的项目目录结构如下:

.
├── Cargo.toml
└── src
    └── main.rs
           
  • Cargo.toml 是项目的描述文件, 它里面保存了项目的依赖库, 项目的名称, 版本号等信息
  • src 是源码目录
  • src/main.rs 是项目的入口点

Cargo.toml的内容:

[package]
name = "rust-learn"  # 项目名称
version = "0.1.0"    # 版本号
edition = "2018"     # 最新的rust edition版本,即语法稳定版本

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
# 依赖声明
[dependencies]
           

main.rs的内容:

fn main() {
    println!("Hello, world!");
}
           

使用如下命令可以编译并运行项目:

$ cd rust-learn
$ cargo run

   Compiling rust-learn v0.1.0 (W:\WorkSpace\Rust\rust-learn)
    Finished dev [unoptimized + debuginfo] target(s) in 0.79s
     Running `target\debug\rust-learn.exe`
Hello, world!
           

Cargo 里面有许多有用的命令, 一些常用的命令包括:

  • cargo new

    生成新的项目模板
  • cargo build

    构建项目, 生成可执行文件或依赖
  • cargo run

    构建并运行项目
  • cargo test

    运行测试用例
  • cargo check

    检查项目代码, 由于 Rust 编译较慢, 因此在开发中常用 check 代替 build 命令
  • cargo doc

    生成项目文档
  • cargo publish

    将库发布到 crates.io
$ rustup component add rustfmt
           
$ cargo fmt
           
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
# 指定镜像
replace-with = 'sjtu' # 如:tuna、sjtu、ustc,或者 rustcc

# 注:以下源配置一个即可,无需全部

# 中国科学技术大学
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index/"

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# rustcc社区
[source.rustcc]
registry = "https://code.aliyun.com/rustcc/crates.io-index.git"
           

继续阅读