在win10上使用mingw64編譯器配置Rust開發(fā)環(huán)境和idea 配置Rust 插件
1、安裝前的準(zhǔn)備

2、安裝 mingw64
2.1、編譯器 mingw 與 visual studio 之間的選擇
Rust 底層是依賴C/C++的 編譯器,所以需要先安裝C/C++編譯環(huán)境。
Windows上C/C++ 的 編譯器 有兩種:
微軟 的 Visual Studio (msvc)
GNU 的 Mingw (gnu): 官網(wǎng)地址:https://www.mingw-w64.org/
Rust 默認(rèn)使用的是 Visual Studio, 使用默認(rèn)選項(xiàng)就能安裝上,缺點(diǎn)是 Visual Studio 體積比較大,下載安裝都要好幾個(gè)G,考慮到體積大小、時(shí)間和網(wǎng)速等原因 , 我選擇使用 mingw(mingw64) 作為 C/C++的編譯器 。
另外,上面兩個(gè)編譯器 分別對應(yīng)的是 x86_64-pc-windows-msvc 和 x86_64-pc-windows-gnu ,后面修改默認(rèn)配置時(shí)會涉及到 。
2.2、下載
mingw 分為32位和64位,本次選擇的是mingw64 。
mingw 是一個(gè)開源項(xiàng)目,有許多組織參與。
mingw64 的環(huán)境下的安裝操作,看看下載頁面 https://www.mingw-w64.org/downloads/。

可以看到有很多種 mingw-64的構(gòu)建方式,支持windows的也不少,本人目前用的是上圖中圓圈標(biāo)記的那個(gè)。
Mingw-builds 的構(gòu)建版本
地址為:https://github.com/niXman/mingw-builds-binaries/releases

選擇 x86_64-12.2.0-release-posix-seh-rt_v10-rev0.7z 下載。
這個(gè)壓縮包才67MB多點(diǎn),比安裝msvc節(jié)省下好幾個(gè)小時(shí) 和 存儲空間 。
mingw 各個(gè)版本的區(qū)別
操作系統(tǒng)版本:
x86_64:64位版本i686: 32位版本
線程模型:
posix:相比 win32,posix 對 C++11的標(biāo)準(zhǔn)庫支持的更好。win32:
如果你想在代碼開發(fā)時(shí)進(jìn)行斷點(diǎn)調(diào)試,推薦用 posix。
異常處理方式:
seh:64位系統(tǒng)可用,使用windows自身的異常處理機(jī)制。dwarf:只支持32位,需要在可執(zhí)行程序中添加額外的調(diào)試信息,程序體積較大。sjlj: 比起其他異常處理會慢得多。
2.3、安裝
下載得到的 x86_64-12.2.0-release-posix-seh-rt_v10-rev0.7z 是一個(gè) 免安裝 版本,可以直接解壓在你想要的目錄下(目錄名稱不要有中文)。
2.4、配置
修改環(huán)境變量 path , 添加解壓目錄下的 bin 。

2.5、測試
打開cmd窗口,輸入 gcc --version,如果顯示如下內(nèi)容,則配置成功:

3、安裝 Rust
3.1 、從Rust的官網(wǎng)下載 rustup-init

3.2、配置國內(nèi)鏡像地址
rustup-init 為在線安裝工具,默認(rèn)的安裝源為國外的站點(diǎn),網(wǎng)速較慢,可設(shè)置環(huán)境變量,使其從國內(nèi)鏡像中下載。
在系統(tǒng)環(huán)境變量中添加如下變量(二選一即可):
### 下面的配置 二選一即可 # 中國科學(xué)技術(shù)大學(xué) RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup # 清華大學(xué) RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup

3.3、運(yùn)行 rustup-init
打開cmd窗口,運(yùn)行 rustup-init.exe ,顯示如下內(nèi)容:

上圖是 要求必須 安裝 C/C++ 的編譯環(huán)境。默認(rèn)是 visual studio 安裝器,而我們使用是 mingw64,因此需要手動(dòng)修改。
此處,選擇2或3均可。
輸入
2

輸入
y

輸入 2 ,進(jìn)行自定義安裝。
2

輸入 x86_64-pc-windows-gnu ,表示我要安裝 64位的 gnu版本 。
x86_64-pc-windows-gnu
接下來都是回車,使用默認(rèn)配置。

上面配置完畢后,到這一步是回車,開始安裝。
安裝過程如下圖所示 。安裝過程中要從網(wǎng)絡(luò)下載很多東西,請耐心等待。

3.4、驗(yàn)證
安裝完成后,重新打開 dos 命令行窗口,輸入rustc --version,輸出
C:\Users\admin>rustc --version
rustc 1.68.1 (8460ca823 2023-03-20)

表示安裝成功。
3.5、rustup 常用命令
# 查看rustc版本 rustc --version # 顯示當(dāng)前安裝的工具鏈信息 rustup show # 檢查安裝更新 rustup update # 卸載 rustup self uninstall # 設(shè)置當(dāng)前默認(rèn)工具鏈 rustup default stable-x86_64-pc-windows-gnu # 查看幫助 rustup -h # -------------------------->配置工具鏈 # 查看工具鏈 rustup toolchain list # 安裝工具鏈 rustup toolchain install stable-x86_64-pc-windows-gnu # 卸載工具鏈 rustup toolchain uninstall stable-x86_64-pc-windows-gnu # 設(shè)置自定義工具鏈 rustup toolchain link <toolchain-name> "<toolchain-path>" # -------------------------->配置一個(gè)目錄以及其子目錄的默認(rèn)工具鏈 # 查看已設(shè)置的默認(rèn)工具鏈 rustup override list # 設(shè)置該目錄以及其子目錄的默認(rèn)工具鏈 rustup override set <toolchain> --path <path> # 取消目錄以及其子目錄的默認(rèn)工具鏈 rustup override unset --path <path> # -------------------------->配置工具鏈的可用目標(biāo) # 查看目標(biāo)列表 rustup target list # 安裝目標(biāo) rustup target add <target> # 卸載目標(biāo) rustup target remove <target> # 為特定工具鏈安裝目標(biāo) rustup target add --toolchain <toolchain> <target> # -------------------------->配置 rustup 安裝的組件 # 查看可用組件 rustup component list # 安裝組件 rustup component add <component> # 卸載組件 rustup component remove <component>
4、cargo 配置
cargo 是rust的包管理工具,類似于python的pip,默認(rèn)的cargo會從國外網(wǎng)站下載包,也可以修改為從科大下載。
4.1、配置 cargo 國內(nèi)鏡像
在用戶主目錄的 .cargo 目錄下新建一個(gè)文件,命名為 config(沒有擴(kuò)展名),并輸入以下內(nèi)容:
[source.crates-io] registry = "https://github.com/rust-lang/crates.io-index" replace-with = 'ustc' ## 二選擇一 ## replace-with = 'XXX' 選擇配置 # 中國科學(xué)技術(shù)大學(xué) [source.ustc] registry = "git://mirrors.ustc.edu.cn/crates.io-index" # 清華大學(xué) [source.tuna] registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
4.2、cargo 基礎(chǔ)命令
查看cargo版本 cargo --version # 新建項(xiàng)目 cargo new <project_name> # 構(gòu)建項(xiàng)目 cargo build # 運(yùn)行項(xiàng)目 cargo run # 檢查項(xiàng)目 cargo check # 查看幫助 cargo -h
5、hello world
經(jīng)過了一系列的安裝配置,將rust運(yùn)行環(huán)境配置 完畢,下面寫一個(gè) hello world 。
我們通過 cargo 來創(chuàng)建項(xiàng)目,在 cmd 窗口中輸入 cargo new hello --bin ,
cargo new hello --bin

cargo 已經(jīng)幫我們創(chuàng)建好了 hello 項(xiàng)目,自動(dòng)生成了一系列文件:
hello
└──
├── .gitignore
├── Cargo.toml
└── src
└── main.rs其中 src 下的 main.rs 為 rust代碼文件,其內(nèi)容為:
fn main() {
println!("Hello, world!");
}進(jìn)入 hello 項(xiàng)目,編譯和運(yùn)行這個(gè)項(xiàng)目:
cd hello
cargo run
Compiling hello v0.1.0 (C:\Users\admin\Desktop\tt\hello)
Finished dev [unoptimized + debuginfo] target(s) in 15.61s
Running `target\debug\hello.exe`
Hello, world!上面完整的操作記錄:

6、idea 配置 Rust 插件
6.1、下載 Rust 插件

6.2、下載源碼
在 cmd 窗口中 輸入如下命令,下載源碼 (idea 會自動(dòng)找到路徑)
rustup component add rust-src

6.3、查看配置

6.4、創(chuàng)建項(xiàng)目
1)選擇 Rust,其它默認(rèn),點(diǎn)擊下一步。

2)選擇路徑,輸入項(xiàng)目名稱: rust_demo1 。
3)創(chuàng)建項(xiàng)目成功,如下圖所示。

7、參考文章
https://blog.csdn.net/zhmh326/article/details/103805485
https://zhuanlan.zhihu.com/p/492412918?utm_id=0
https://www.cnblogs.com/lixueren-wy/articles/16934078.html
https://blog.csdn.net/saibeifeng187/article/details/107567702
到此這篇關(guān)于在win10上使用mingw64編譯器配置Rust開發(fā)環(huán)境和idea 配置Rust 插件的文章就介紹到這了,更多相關(guān)mingw64編譯器配置Rust開發(fā)環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Rust中實(shí)例化動(dòng)態(tài)對象的示例詳解
這篇文章主要為大家詳細(xì)介紹了Rust中實(shí)例化動(dòng)態(tài)對象的多種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02
使用Rust制作康威生命游戲的實(shí)現(xiàn)代碼
這篇文章主要介紹了使用Rust制作康威生命游戲,初始rust項(xiàng)目,使用wasm的項(xiàng)目模板,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
Rust中的Drop特性之解讀自動(dòng)化資源清理的魔法
Rust通過Drop特性實(shí)現(xiàn)了自動(dòng)清理機(jī)制,確保資源在對象超出作用域時(shí)自動(dòng)釋放,避免了手動(dòng)管理資源時(shí)可能出現(xiàn)的內(nèi)存泄漏或雙重釋放問題,智能指針如Box、Rc和RefCell都依賴于Drop來管理資源,提供了靈活且安全的資源管理方案2025-02-02
Rust中的Iterator和IntoIterator介紹及應(yīng)用小結(jié)
Iterator即迭代器,它可以用于對數(shù)據(jù)結(jié)構(gòu)進(jìn)行迭代,被迭代的數(shù)據(jù)結(jié)構(gòu)是可迭代的(iterable),所謂的可迭代就是這個(gè)數(shù)據(jù)結(jié)構(gòu)有返回迭代器的方法,這篇文章主要介紹了Rust中的Iterator和IntoIterator介紹及應(yīng)用,需要的朋友可以參考下2023-07-07

