Rust 走马观花(一)—— 从安装到编译

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

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

 

一、VS Code 扩展

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

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

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

 

二、安装并创建项目

window:

下载并运行 rustup-init.exe

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

 输入 2 开始自定义配置

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

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


macOS / Linux:

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

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

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

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

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

比如在  ~/project  目录下执行  cargo new hello-rust 最终就会生成新项目  ~/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 信息

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

cargo add [email protected]

// 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

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

 

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

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


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

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

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章