配置 Rust 開發環境
5 人贊了文章
前言
配置 Rust 開發環境中所下載的工具都是從國外伺服器下載的,而且我好像沒找到有國內鏡像(也許?如果有歡迎指出)。所以如果網路不好,請自己想辦法。
涉及到 Rust Language Server (以下簡稱 RLS)部分的工具都需要 nightly 版本,我也不知道為什麼。
安裝 Rust
配置環境變數
安裝 Rust 使用 Rust 官方推薦的 rustup,可以自動處理 rustc 和 cargo 等工具,還能通過添加 target 來實現交叉編譯。不過 rustup 默認會把 Rust 安裝在用戶目錄下,而 Windows 下就是C盤了。我可不想我的C盤被擠爆。但是 rustup 在安裝過程中是不能修改安裝路徑的(只能修改工具鏈這些)。
好在 rustup 在官方文檔中指出可以通過指定環境變數來設定目錄。這裡要設置兩個環境變數:分別是 RUSTUP_HOME 和 CARGO_HOME。
- RUSTUP_HOME 所指向的目錄會存放 toolchain 等各種工具。
- CARGO_HOME 所指向的目錄只放少量的文件,例如 rustc 等 bin 文件。
環境變數要在啟動 rustup-init.exe 之前設置好。
執行 rustup-init
rustup 在 Windows 環境下會優先使用 MSVC 作 linker,也就是 target 為 (arch)-pc-windows-msvc,然而我沒有 Visual C++ Build Tools(因為它太大了,而且裝在C盤)。因此執行 rustup-init.exe 會看到這樣的提示:(已經有 MSVC 編譯器的不會有這樣的提示)

沒關係的,按 Y 即可。
但是即使 rustup-init 已經知道你沒有 MSVC 編譯器,在接下來的下面它仍然默認使用 MSVC:

所以這裡要選擇2,在自定義安裝選項中,把 host 改為 (arch)-pc-windows-gnu。注意電腦上要先安裝 MinGW,推薦安裝 MSYS2。
後面的依然是 stable 和「確認修改環境變數」就行。
接下來的就是等待。安裝完成後,可以分別執行以下命令檢查是否成功安裝。
rustc --versioncargo --version
安裝 Rust Language Server 所需的工具
到了上面那一步,只是做到了能創建和編譯 Rust 工程。想要有舒適的開發體驗,還需要安裝語言伺服器。這裡我推薦使用 VS Code 作為編輯器,配合 RLS 可以擁有 IDE 般的開發體驗。(包括但不限於重構、代碼補全、代碼格式化)
安裝 Rustfmt
Rustfmt 是 Rust 下的代碼格式化工具,類似於 gofmt。安裝之後(並配置 VS Code 下的擴展)可以像在其它語言下的那樣進行格式化:

執行:
cargo +nightly install rustfmt
首次執行 cargo install 會消耗較長時間(特別是網路不好),因為它要連接 GitHub 進行 crates 的索引。此外,下載和編譯要一定的時間。是的,它需要下載回來後進行編譯。
安裝 Racer
RLS 需要 Racer,而安裝 Racer 稍微複雜,並且又是個考驗網路的時候。
首先安裝 nightly 的工具鏈,由於我這裡使用的 x86_64-pc-windows-gnu,所以要執行:
rustup toolchain install nightly-x86_64-pc-windows-gnu
然後安裝 Rust 源碼:
rustup component add rust-src --toolchain nightly
安裝完成之後要添加一個環境變數(略煩):RUST_SRC_PATH。把它的值設置為 RUSTUP_HOME 下 toolchains/(你的 toolchain)/src。
例如我這裡 RUSTUP_HOME 的值是 E:AppsRust
ustup,而我使用的 toolchain 是 nightly-x86_64-pc-windows-gnu,因此這個環境變數設置為 E:AppsRust
ustup oolchains
ightly-x86_64-pc-windows-gnusrc。
設置完之後就可以執行:
cargo +nightly install racer
接著安裝:
rustup component add rls-preview --toolchain nightlyrustup component add rust-analysis --toolchain nightly
這裡有一點我不是很清楚:如果我執行 rustup component add rls --toolchain nightly,會出現類似「toolchain 『nightly-x86_64-pc-windows-gnu』 does not contain component 『rls』 for target 『x86_64-pc-windows-gnu」這樣的錯誤,而這種方法卻是 VS Code 中的 Rust 擴展所執行的。但是按照 RLS 的官方安裝教程,則是安裝 rls-preview,這個沒有問題。
安裝 VS Code 中的相關擴展
這裡推薦安裝兩個擴展,分別是 Rust 和 Rust(rls),直接在 VS Code 中搜索「Rust」就能找到這兩個擴展。
效果
Snippets

代碼格式化,這個前面已經展示過。
重構

滑鼠懸浮提示
代碼自動補全

錯誤或警告提示(On-the-fly)

生命周期不正確也能檢測(此時文件沒有保存):
對於有些問題,能夠通過編輯器修復:

總結
整個過程主要是安裝 RLS 那一部分比較複雜,特別是下載和編譯消耗了不少時間。不過成功之後,帶來的方便是顯而易見的。
推薦閱讀:



