iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
Software Development

30 天精通 C 語言建置與除錯:從 Makefile 到 CMake 跨平台實戰系列 第 2

[Day 02] 工欲善其事,必先利其器 - 安裝 VSCode + WSL

  • 分享至 

  • xImage
  •  

為何用WSL + VSCode

第一個問題就是:我要在哪裡寫+執行程式?
如果想要單純執行其實可以安裝[Code:Blocks](Code::Blocks - Code::Blocks)等類似的軟體就可以實踐入手快,幾乎不用編譯可以快速跑起來,這樣可以讓學習的人專注於程式碼本身,對於單純執行C是一個很好起步的工具。
但是如果像我一樣主要的工作範疇是嵌入式系統,大多都會使用Linux,但一個新手要完全從熟悉的windows系統切換到Linux是有極高的難度的,因此決定善用微軟提供的 WSL(Windows Subsystem for Linux)。雖然有人認為它不算是完整的 Linux 環境,而且會佔用一些電腦資源,但對初學者來說,它的好處是不用額外裝虛擬機或雙系統,就能在 Windows 裡直接享受到 Linux 的開發體驗。這樣既能練習 C 語言,也能同時熟悉 Linux 指令,實屬一舉兩得。
而編輯器的選擇,我選擇了 Visual Studio Code。它不僅免費,還能透過延伸套件連線到 WSL,等於是在 Windows 界面中打開 Linux 檔案,編輯、編譯、除錯都能在一個環境中完成。比起在純 Linux 終端機裡用 vimnano,VSCode 提供語法上色、自動完成、偵錯工具,對初心者而言非常友善。

不過如果不使用WSL + VSCode的組合的話,下面的組合也可以多加參考

組合 優點 缺點 適合對象
VSCode + WSL - 在 Windows 上跑完整 Linux 環境- gcc/make/gdb 等工具原生支援- VSCode 提供 UI、除錯、插件 - 初始安裝需設定 WSL- 佔用一點資源- 和純 Linux 還是有些差異 想在 Windows 上體驗 Linux 編譯流程的人
VSCode + MinGW (Windows GCC) - 安裝簡單- 可以直接在 Windows 編譯執行- 不需 WSL - 與 Linux 工具鏈差異大(header/library 相容性問題)- 部分跨平台專案難以直接編 只想在 Windows 簡單寫小專案的初學者
Visual Studio (完整 IDE) - 強大 IDE,整合除錯、編譯器- Windows 專案支援完整 - 體積龐大- 偏 Windows 生態,與 Linux 差異大- 不適合嵌入式或跨平台 偏向 Windows 桌面應用或公司內建 MS 生態的人
Code::Blocks (IDE + GCC) - 輕量,安裝即用- 適合小專案- 新手友善 - 介面老舊- 插件少- 不利長期維護大型專案 想快速入門 C 的新手
CLion (JetBrains IDE) - 現代化 IDE- 原生支援 CMake- 提供 refactor、代碼導航 - 收費軟體(學生可免費)- 資源消耗比 VSCode 大 想用功能齊全 IDE 並習慣 JetBrains 系列的人
純 Linux (VSCode Remote / vim / nano) - 最貼近真實生產環境- 工具鏈完整,與伺服器/嵌入式一致 - 對 Windows 使用者不友善- 硬體驅動相容需考量 想直接體驗 Linux 開發的進階學習者
Xcode (macOS) - macOS 原生 IDE- UI/UX 優化好- 可直接用 clang 編譯 - 僅限 macOS- 與 Linux 編譯環境還是有差 Mac 使用者想學 C 的最佳選擇

WSL安裝與設定流程

WSL 一般安裝步驟

可以參考官方文件
適用於Linux的 Windows 子系統檔 | Microsoft Learn
以下提供簡單說明:(windows --> 可以使用powershell來快速下指令)

根據需求可以安裝不同版本的WSL版本清單

wsl --list --online

這個命令會顯示可安裝的 Linux 發行版清單,例如 Ubuntu、Debian、Kali 等。

NAME                            FRIENDLY NAME
AlmaLinux-8                     AlmaLinux OS 8
AlmaLinux-9                     AlmaLinux OS 9
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
AlmaLinux-10                    AlmaLinux OS 10
Debian                          Debian GNU/Linux
FedoraLinux-42                  Fedora Linux 42
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7
Ubuntu                          Ubuntu
Ubuntu-24.04                    Ubuntu 24.04 LTS
archlinux                       Arch Linux
kali-linux                      Kali Linux Rolling
openSUSE-Tumbleweed             openSUSE Tumbleweed
openSUSE-Leap-15.6              openSUSE Leap 15.6
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_10                Oracle Linux 8.10
OracleLinux_9_5                 Oracle Linux 9.5

安裝

Ubuntu 發行版預設 22.04 LTE

wsl --install -d Ubuntu

安裝指定版本

一般使用上來說建議22.04 LTE 以上的版本搭載的python 版本以及cmake版本都會比較新

wsl --install -d Ubuntu-20.04

透過 .vhdx安裝WSL

如果不是透過上面的方法初始化一個WSL,而是使用vhdx進行安裝的話可以參考下面的流程

WSL


wsl --import-in-place (ubuntu_backup命名) vhdx檔路徑(D:\wsl\ext4.vhdx)

例如

wsl --import-in-place ubuntu_backup D:\wsl\ext4.vhdx

WSL的常見指令

關機 / 更新

wsl --shutdown
wsl --update
  • 查看已安裝的發行版
wsl --list --verbose

切換發行版版本

wsl --set-version Ubuntu-20.04 2
  • 安裝

列出所有 wsl 環境

wsl -l -v

假如我有兩個環境的話,會列出兩個環境有* 標示的是預設路徑
* 標註的是預設路徑

  NAME             STATE           VERSION
* Ubuntu-22.04     Stopped         2
  ubuntu_backup    Running         2

更改預設路徑

wsl --set-default ubuntu_backup

就會出現

操作順利完成。

打開wsl 環境

如果只有一個wsl可以下下面的指令,他就會打開預設的wsl檔案

wsl

或是可以指定打開特定的wsl

wsl -d ubuntu_backup

移除環境

wsl --unregister Ubuntu-22.04
wsl --unregister ubuntu_backup

vscode 安裝步驟

安裝windows vscode
Visual Studio Code - Code Editing. Redefined

wsl #  呼叫wsl
code .

這樣就可以順利使用vscode了

安裝必須的套件

cmake tool
C/C++
C/C++ extension pack


上一篇
[Day 01] 生醫學生眼中的C語言
下一篇
[Day 03] 用gcc編譯我人生第一個 C 程式:不是 Hello World!
系列文
30 天精通 C 語言建置與除錯:從 Makefile 到 CMake 跨平台實戰4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言