Rust 官网的入门教程已经很详情,本文只是基于官方文档做一些补充

请配合官方文档《Rust 入门:快速配置 Rust 开发环境并编写一个小应用》食用

 

一、VS Code 扩展

在正式开始编写 Rust 之前,可以先安装一些扩展插件

1. rust-analyzer (核心插件, 如同 vetur 之于 vue)

2. Better TOML ( .toml 文件高亮)

 

二、安装并创建项目

window:

下载并运行 rustup-init.exe

rustdesk android源码编译_依赖包

 选第 2 项,然后有个二次确认,输入 y 并回车,看到以下信息:

rustdesk android源码编译_依赖包_02

 输入 2 开始自定义配置

rustdesk android源码编译_Code_03

 分别需要输入 x86_64-pc-windows-gnu,nightly,回车,回车

rustdesk android源码编译_依赖包_04

最终配如上,然后输入 1 开始安装


macOS / Linux:

如果是 macOS 或者 Linux, 直接在终端运行以下命令安装 Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装的同时会安装 Cargo,这是 Rust 的构建工具和包管理器

安装结束后可以通过 cargo --version 检查是否安装成功

rustdesk android源码编译_Rust_05

然后可以使用 cargo new 创建项目

比如在  ~/project  目录下执行  cargo new 最终就会生成新项目  ~/project/hello-rust

创建的项目有会有以下文件

hello-rust
|- Cargo.toml
|- src
  |- main.rs

但如果提前安装了 VS Code 插件 rust-analyzer, 就会多出 target 目录和 Cargo.lock


这里的 Cargo.toml 就像是前端项目中的 package.json,

// 在 Rust 中,依赖包被称作 crate

Cargo.lock 就像是 package-lock.json, 记录了项目依赖的精确版本,不要手动修改!

而 target 目录是项目构建的产物,后面会介绍 


现在已经创建了一个简单的 rust 项目,接下来在项目的根目录下执行以下命令

rustc src/main.rs

执行上面的代码之后,会当前目录生成一个可执行的 main 文件(window 系统会生成 main.exe),这个文件就是 src/main.rs

对于单个文件可以采用 rustc 这种编译方式,但对于一个完整项目,需要使用cargo来编译

 

三、添加依赖

Rust 中的代码包被称为 crate,统一管理在 crates.io,就像是 npm

接下来会用到 ferris-says 这个库,可以在 Cargo.toml 手动追加 dependencies 信息

rustdesk android源码编译_Rust_06

也可以通过命令行的方式添加(就像 yarn add)

cargo add ferris-says@0.2

// cargo 包的版本规则和 npm 一样,可以采用 ^ ~ * 等符号,如 ^0.2

然后开始编辑 src/main.rs文件,这个文件是 cargo 项目的入口文件,也称作“根”

首先删掉 main.rs 中的所有内容,然后添加这一行代码:

use ferris_says::say;

这行代码的含义是:从 ferris_says 这个包 (crate) 里面导出了 say 这个函数,类似于:

import { say } from 'ferris_says';

最终以下面的代码替换 main.rs 中的内容

use ferris_says::say;
use std::io::{stdout, BufWriter};

fn main() {
    let stdout = stdout();
    let message = String::from("Hello Rust!");
    let width = message.chars().count();
    let mut writer = BufWriter::new(stdout.lock());
    say(message.as_bytes(), width, &mut writer).unwrap();
}

 

四、编译项目

接下来使用 cargo 编译项目,在项目的根目录下执行以下命令

cargo build

然后 Cargo 会安装项目中用到的依赖包,生成 Cargo.lock 文件,并创建开发调试文件 target/debug/*

不过在开发的时候一般不需要使用 cargo build,而是使用 cargo run

这个命令会编译代码,并在终端执行编译后的文件:

 

rustdesk android源码编译_Rust_07

这里我连续执行了两次 cargo run,可以看到第一次 run 有三个阶段: Compiling -> Finished -> Running

而第二次 run 由于没有代码变更,所以直接跳过了 Compiling 阶段


开发完成后,可以使用 cargo build --release 编译

这个命令的编译时间更长,但编译后的代码会运行的更快,体积更小

编译后的文件会生成到 target/release 目录下

rustdesk android源码编译_Rust_08

rustdesk android源码编译_依赖包_09