程式語言Rust的開發團隊發布預告:從Rust 1.100開始,將不再為32位元Windows提供可直接執行的編譯器等開發工具。在32位元Windows上寫Rust程式的開發者,未來將無法安裝新版的完整工具鏈。
不過,開發者仍然可以製作32位元Windows程式,只是必須改在64位元Windows等受支援的電腦上完成編譯,再產生供32位元Windows執行的程式,也就是改採「交叉編譯」的方式:在一種系統環境中,替另一種目標環境產生程式。
受影響的是i686-pc-windows-msvc與i686-pc-windows-gnu兩個32位元Windows目標。Rust仍會繼續提供兩者所需的標準函式庫,因此這次調整並未取消對32位元Windows程式的支援,只是開發工具的提供方式改變。
兩個目標的支援等級維持不變,但支援內容會縮減。採用微軟工具鏈的i686-pc-windows-msvc仍維持Rust最高的第一級支援,也會繼續接受持續整合測試;採用GNU工具鏈的i686-pc-windows-gnu則維持第二級支援,兩者都不再提供能在32位元Windows直接執行的開發工具。
Rust團隊說明,維護32位元Windows開發工具近年已碰到實際的技術限制。MSVC版本曾發生編譯器執行檔當機,GNU工具鏈在建置LLVM時也曾因為可用記憶體不足而失敗。
根本原因在於,32位元程式能使用的記憶體空間有限,部分編譯工作所需的記憶體可能超出可用範圍,因此在32位元Windows上維持完整的開發環境愈來愈困難,繼續投入維護的成本效益不斷下降。
Rust的下載統計也反映了類似趨勢。兩個32位元Windows目標的標準函式庫下載量,都明顯高於編譯器本身的下載量,代表目前仍有人需要產生32位元程式,但直接使用32位元Windows進行Rust開發的需求已經很少。
事實上,微軟最後一款提供32位元版本的Windows就是Windows 10,而32位元Windows的一般支援已在2025年10月結束。作業系統廠商都已轉身,開發工具跟進調整只是時間問題。
Rust團隊也強調,這次調整只針對32位元Windows的開發工具,其他32位元平台不受影響。對大多數開發者而言,日常工作流程幾乎不會有感覺。
真正需要留意的,是少數仍在32位元Windows本機上開發的團隊。隨著1.100版逼近,提前把開發環境遷移到64位元系統、熟悉交叉編譯流程,將是避免屆時手忙腳亂的最好準備。