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 目錄下

 

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