【Rust】使用WSL安裝Rust,撰寫第一個hello world程式

更新 發佈閱讀 3 分鐘

前言

之前已經開始在windows上使用WSL,然後呢?

雖然對於有經驗的工程師來說,多學一門程式語言的投報率並不高。從理解底層及應用現代方式做記憶體管理、程式碼安全上等思維的探索,好好了解Rust是為了在撰寫其他語言程式碼時,能更直覺的看出語法層面所凸顯不出來的機器運行時前潛在問題,更能突顯工程師的價值。

那麼,就開始吧!

安裝

從官方網站上找到安裝區塊,複製指令到終端機

vocus|新世代的創作平台

貼上後會安裝cargo等工具,並配置好環境變數及告訴你存放位置,使用預設安裝就輸入Enter繼續

vocus|新世代的創作平台


等待下載安裝

vocus|新世代的創作平台


安裝完成,流程不用幾十秒

vocus|新世代的創作平台

記得執行source指令重新載入配置,或著重啟終端機,才能夠確保環境配置載入

source $HOME/.cargo/env

確認安裝版本生效

rustc --version


第一個Rust程式

回到之前依照官網學習文件,重新回憶自己文章跳過的部分

【Rust】跟著社群資源學習Rust_(1)

新建一個資料夾來控管專案,取名hello-world,並在裡面建立main.rs檔案

vocus|新世代的創作平台

在進入點main function內使用prinln輸出hello world字串

vocus|新世代的創作平台

存檔後,使用rustc進行編譯,果然不出意外的出意外了

vocus|新世代的創作平台

問題排除

問題原因是因為Rust編譯在最後的步驟使用linker時,用的是系統的C語言編譯器。而我WSL安裝的Ubuntu是全新乾淨的Linux環境,需要執行下列指令安裝基礎的開發工具包。

sudo apt update
sudo apt install build-essential

完成後確認cc是否安裝成功

cc --version​

再回來重新編譯,成功後會多了一個main檔案,使用./main執行,可正常輸出結果

vocus|新世代的創作平台

下一步

在跟著文件實作前,我想先回頭把LSP(Language Server Protocol)配置起來,對之後的開發體驗也會大幅提升。可以簡單理解為其他IDE內常見的語法提示跟補全所需要的擴充元件,rust用的即是參考影片中的rust analyzer

在 Windows 上打造 Linux 開發環境:WSL2 + Ubuntu + zsh/vim

留言
avatar-img
Err500
18會員
84內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
Err500的其他內容
2025/01/29
第三章資料型態與函式重點整理,涵蓋純量型別、整數型別、浮點數型別、字元型別、布林值型別、組合型別 (Tuple、Array)、函式定義、型別提示、流程控制 (分支判斷、迴圈),並與其他程式語言如 Java, JavaScript, Python, TypeScript作比較。
Thumbnail
2025/01/29
第三章資料型態與函式重點整理,涵蓋純量型別、整數型別、浮點數型別、字元型別、布林值型別、組合型別 (Tuple、Array)、函式定義、型別提示、流程控制 (分支判斷、迴圈),並與其他程式語言如 Java, JavaScript, Python, TypeScript作比較。
Thumbnail
2025/01/28
前言 上一篇已經可以用Playground練習Rust,文件中的第一章就不細看了。至於第二章是實作做一個猜數字遊戲,讀取使用者輸入,跟亂數產生的數字比大小,輸出比較結果,有興趣可以自行練習,因此接續從第三章開始。
Thumbnail
2025/01/28
前言 上一篇已經可以用Playground練習Rust,文件中的第一章就不細看了。至於第二章是實作做一個猜數字遊戲,讀取使用者輸入,跟亂數產生的數字比大小,輸出比較結果,有興趣可以自行練習,因此接續從第三章開始。
Thumbnail
2025/01/25
學習 Rust 程式語言的心得分享,文章內容著重在語言設計層面,並使用線上 Playground 進行學習與練習,介紹了基本輸出、變數定義等概念。
Thumbnail
2025/01/25
學習 Rust 程式語言的心得分享,文章內容著重在語言設計層面,並使用線上 Playground 進行學習與練習,介紹了基本輸出、變數定義等概念。
Thumbnail
看更多
你可能也想看
Thumbnail
先須知識: 了解什麼是變數 作用域scope 在Rust中,變數預設是不可變的 let name = "Zoe"; // 預設變數不可變 也就同於Javascript中的const,若想讓變數可變則需要在let後面加上mut關鍵字: let mut name = "Vicky"; nam
Thumbnail
先須知識: 了解什麼是變數 作用域scope 在Rust中,變數預設是不可變的 let name = "Zoe"; // 預設變數不可變 也就同於Javascript中的const,若想讓變數可變則需要在let後面加上mut關鍵字: let mut name = "Vicky"; nam
Thumbnail
2025 年 11 月 18 日,Cloudflare 的第二代核心代理(FL 2)發生了當機事件,這起事件引發了許多討論,其中不乏指責或嘲諷 Rust 的貼文。我自己也寫 Rust 所以知道原因,但很多人明顯是不懂裝懂,不得不出來平反一下。
Thumbnail
2025 年 11 月 18 日,Cloudflare 的第二代核心代理(FL 2)發生了當機事件,這起事件引發了許多討論,其中不乏指責或嘲諷 Rust 的貼文。我自己也寫 Rust 所以知道原因,但很多人明顯是不懂裝懂,不得不出來平反一下。
Thumbnail
最開始學習一個語言肯定是從基礎語法開始,Rust還算滿幸運的有基礎語法的翻譯,這翻譯是在官方網站下推薦的,初步看起來沒什麼問題,在開發環境中我選擇visual studio code,基本的安裝,如果有問題的話,我相信網路上都找得到答案 第二章節就即開始基礎的Rust用法,非常有C語言的感覺,就是讓
Thumbnail
最開始學習一個語言肯定是從基礎語法開始,Rust還算滿幸運的有基礎語法的翻譯,這翻譯是在官方網站下推薦的,初步看起來沒什麼問題,在開發環境中我選擇visual studio code,基本的安裝,如果有問題的話,我相信網路上都找得到答案 第二章節就即開始基礎的Rust用法,非常有C語言的感覺,就是讓
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
對於剛學習 Rust 的人來說,最一開始不是看 Youtube 的影片或是跟著 Rust 官方手冊 The Book 學習,這邊來推薦一個練習 Rust 的專案,名為 rustlings。 rustlings 包含著一些簡單的題目,來讓你更習慣閱讀或編寫 Rust 程式碼。該專案會在每道題目上給予
Thumbnail
對於剛學習 Rust 的人來說,最一開始不是看 Youtube 的影片或是跟著 Rust 官方手冊 The Book 學習,這邊來推薦一個練習 Rust 的專案,名為 rustlings。 rustlings 包含著一些簡單的題目,來讓你更習慣閱讀或編寫 Rust 程式碼。該專案會在每道題目上給予
Thumbnail
第一篇文章就先說說我的背景,並做一些開始接著寫文章前的介紹。
Thumbnail
第一篇文章就先說說我的背景,並做一些開始接著寫文章前的介紹。
Thumbnail
非同步程式設計(Asynchronous programming) 或是簡單的稱之為 async,它是一種並發程式模型(concurrent programming model),其目的就是讓多個任務能同時在作業系統的執行緒上執行,並透過 async/.await 保留同步。
Thumbnail
非同步程式設計(Asynchronous programming) 或是簡單的稱之為 async,它是一種並發程式模型(concurrent programming model),其目的就是讓多個任務能同時在作業系統的執行緒上執行,並透過 async/.await 保留同步。
Thumbnail
今天帶你用 測試驅動開發(TDD) 的方式,在 Rust 裡從零打造一個命令列搜尋工具:minigrep。 這是《Rust 程式設計語言》書中的經典範例,用來學習測試、模組化與生命週期。 Let's go 🚀 首先建立專案: cargo new minigrep cd minigrep
Thumbnail
今天帶你用 測試驅動開發(TDD) 的方式,在 Rust 裡從零打造一個命令列搜尋工具:minigrep。 這是《Rust 程式設計語言》書中的經典範例,用來學習測試、模組化與生命週期。 Let's go 🚀 首先建立專案: cargo new minigrep cd minigrep
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
近期已經進去了一個看完語法,進去實作的階段,自然需要去挑選一個適合的環境來開發了。 原本使用的VS code,基本的使用上沒什麼問題,只是每當我要裝一些套件時就會報錯,相信花點時間,這些錯都可以解決,但我突然轉念一想,不如換個環境來寫寫看吧。於是就把矛頭轉向系統內建的Vim了。
Thumbnail
近期已經進去了一個看完語法,進去實作的階段,自然需要去挑選一個適合的環境來開發了。 原本使用的VS code,基本的使用上沒什麼問題,只是每當我要裝一些套件時就會報錯,相信花點時間,這些錯都可以解決,但我突然轉念一想,不如換個環境來寫寫看吧。於是就把矛頭轉向系統內建的Vim了。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News