The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何在 Windows 作業系統打造 Rust 開發環境

我最近的課程因為都開始改用 Discord 來當成學員之間的互動介面,為了實現自動審核加入課程的學員,我們用 Rust 撰寫了一支程式來處理這個審核作業,並將程式跑在容器中,部署到 Azure App Service 上面執行。效能好就不用說了,主要是啟動速度快,記憶體使用量也很低,但唯一的缺點就是「可讀性」真的很差,主要是一個相對陌生的程式語言,但我今天在改功能的時候,用 GitHub Copilot 輔助我瞭解程式語法與結構,也用它來幫我完成一些任務,想不到非常順利。今天這篇文章,我打算來介紹如何在 Windows 作業系統上打造 Rust 開發環境,並透過 Visual Studio Code 來開發 Rust 程式。

Rust development on Windows

安裝 Rust 工具鏈

你可以直接開啟瀏覽器,前往 Rust 官方網站 下載 rustup 安裝程式,這裡有很多安裝選項,初學者可能會遇到一些選擇障礙。

或者你也可以學我透過直接透過 Chocolatey 自動安裝 Rust 開發環境。

但是要透過 Chocolatey 安裝 Rust 也會有選擇障礙,因為你有兩種選擇:

  1. Rust (GNU ABI)

    GNU ABI 指的是使用 GNU 工具鏈 (如 GCC 編譯器) 所遵循的二進位介面規範。

    choco install rust -y
    
  2. Rust (Visual Studio ABI) (建議安裝這個)

    Visual Studio ABI 指的是使用 Microsoft 的編譯器和鏈接器所遵循的二進位介面規範,也稱為 MSVC ABI 介面。

    choco install rust-ms -y
    

💡 所謂 ABI (Application Binary Interface) 是一種介面,定義應用程式如何與系統的底層二進位介面互動。ABI 包括函式約定、資料對齊、資料型態表示方式以及函式庫函式約定。ABI 是應用程式與作業系統之間的介面,定義應用程式如何與作業系統互動。ABI 包括應用程式如何呼叫作業系統提供的服務,以及如何存取作業系統提供的資源。

基本上,要在 Windows 開發 Rust 通常都會安裝 Rust (Visual Studio ABI) 為主,因為大部分 Windows 開發者都有使用 Visual Studio 開發工具。不過,如果你還沒有安裝 Visual Studio 的話,也建議先安裝 Visual Studio 2022 Community 版本。首次安裝時,請注意要選擇以下工作負載 (Workload):

  • Desktop Development with C++

然後安裝 Rust (Visual Studio ABI) 工具:

choco install rust-ms -y

如果你想安裝 Rust 在 WSL (Windows Subsystem for Linux) 的話,可以用以下命令安裝 rustup 工具:

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

執行完上述命令後,按一個 Enter 鍵,就會自動安裝 Rust 工具鏈到好。

💡 關於 rustup 的運作方式與相關說明,請見 Concepts 文件。

驗證安裝結果

想簡單確認你是否有正確安裝 Rust 的話,請開啟命令列環境並輸入此命令:

rustc --version

rustc --version

安裝 Visual Studio Code 擴充套件

  1. rust-analyzer

    Rust 官方有發展一套 rust-analyzer 擴充套件,建議安裝這套就好。

    早期有個名為 Rust 的擴充套件已經不再維護,建議不要安裝舊的。

  2. C/C++

    如果想在 Visual Studio Code 中對 Rust 程式碼進行除錯,建議安裝 C/C++ 擴充套件。

建立 Hello, World! 範例程式

  1. 使用 cargo new 命令建立一個 Rust 專案範本

    cargo new hello-rust
    
  2. 使用 Visual Studio Code 開啟這個資料夾

    cargo new hello-rust

  3. 認識 Cargo.toml 專案設定檔

    這個檔案如同 Node.js 的 package.json 一樣,是 Rust 專案的設定檔,可以設定專案名稱、版本、作者、依賴套件等等。

    [package]
    name = "hello-rust"
    version = "0.1.0"
    edition = "2021"
    
    [dependencies]
    

    很明顯的,name 代表你目前專案的名稱,version 代表版本號,edition 代表 Rust 版本,dependencies 代表專案所需的依賴套件。

    你可能會好奇,為什麼 Cargo.toml 要定義 edition2021 呢?因為 Rust 的版本分為不同的 edition 版本,每個版本都有不同的功能和語法,而 Rust 目前有三個主要的 edition 版本:

    • 2015
    • 2018
    • 2021 (最新)

    edition = "2021" 表示這個專案使用 Rust 2021 版本的語言特性標準函式庫。這樣可以確保專案中使用的所有函式庫和語法都是符合 Rust 2021 版本的標準,並且可以充分利用新的功能和改進。

  4. 開啟 src/main.rs 檔案,點擊 RunDebug 就可以執行或偵錯應用程式

    這是 Rust 應用程式的主要進入點,你可以在這個檔案中撰寫 Rust 程式碼。

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

    點擊  或  就可以執行程式

  5. 你也可以利用 cargo run 命令進行編譯與執行

    cargo.exe run --package hello-rust --bin hello-rust
    

    這個命令會自動建立 target 資料夾,此資料夾無須加入版控,預設 cargo new 已經幫我們建立好了 .gitignore 檔案。

    另外,這個命令所產生的執行檔會在 target/debug/hello-rust.exe 路徑下。

  6. 如果你想用最傳統的 rustc 來編譯成是,也可以輸入以下命令進行編譯

    rustc src/main.rs
    

    這個命令會在當前目錄產生 main.exe 執行檔與 main.pdb 符號檔。

維持 Rust 工具鏈在最新版本

由於 Rust 官方推薦的安裝方式是使用 rustup 工具,所以你可以透過 rustup 來維持 Rust 工具鏈在最新版本。

Rust 以三個不同的發布通道分發:穩定通道(stable)、測試通道(beta)和每日建置通道(nightly)。而 rustup 預設使用穩定通道(stable),這代表 Rust 的最新發布。穩定通道(stable)每 6 週發布一次新版本。當 Rust 發布新版本時,只需輸入 rustup update 即可更新:

rustup update

如果你不太會使用到非穩定版(non-stable),直接用 Chocolatey 安裝 Rust 比較簡單,升級也很容易,執行以下命令即可:

choco upgrade rust-ms -y

相關連結

留言評論