天天看點

vscode在wsl建立的虛拟機裡調試運作C語言程式

作者:windbadboy

前言

在windows平台上搭建C語言程式設計環境有很多種方法,筆者用C語言主要是業餘愛好,學習用。筆者沒有安裝重武器Visual Studio,而是選擇了它的小弟Visual Studio Code(以下簡稱vscode)。vscode是微軟出品的輕量級的代碼編輯器,雖然體量“嬌小”,但以擁有衆多高品質的插件出名,能夠擴充很多vscode自身不具備的功能,比如筆者編寫C語言程式需要用到的調試和運作功能。要想通過vscode具備調試、運作C語言程式的能力,需要一定的配置步驟,筆者将實測過的配置方法分享給大家。

方案

windows預設沒有C語言運作環境,通過WSL2(Windows Subsystem for Linux)安裝一台Ubuntu虛拟機來運作C語言程式。vscode支援在WSL2建立的虛拟機裡調試和運作C語言程式。簡單來說,筆者的方案就是用vscode在WSL2建立的虛拟機裡調試運作C語言程式。

配置步驟

  • 安裝vscode

筆者使用的作業系統是Windows11 On Arm,理論上windows10同樣适用。vscode直接從官網下載下傳(https://code.visualstudio.com)。安裝好vscode後需要在插件市場安裝名為WSL的插件。

vscode在wsl建立的虛拟機裡調試運作C語言程式

WSL插件

  • 安裝Windows Terminal
vscode在wsl建立的虛拟機裡調試運作C語言程式

windows終端

Windows Terminal支援WSL相關指令。

  • 安裝虛拟機

打開Windows Terminal,首先輸入下列指令,注意安裝過程需要連接配接網際網路。預設安裝Ubuntu虛拟系統。安裝過程中可能需要重新開機電腦。

wsl --install           
  • 在虛拟機中安裝c語言編譯環境

系統安裝好後,執行下列指令安裝編譯環境

#登入系統
wsl -u root
#安裝C語言編譯環境程式 
apt install gcc gdb -y           
vscode在wsl建立的虛拟機裡調試運作C語言程式

gcc/gdb

安裝完成後,建立程式主目錄。

#建立程式主目錄
mkdir -p /mnt/c/code/c
cd $_
code .           

順利的話,執行完上述指令後系統會啟動vscode,并加載WSL環境,首次加載需要一點時間。

vscode在wsl建立的虛拟機裡調試運作C語言程式

加載WSL環境

WSL環境自動配置完成後,會在vscode界面左下角顯示圖示。

利用WSL安裝的Ubuntu虛拟機

到這一步,需要安裝配置的軟體基本都到位了,還剩兩個json檔案需要配置。

launch.json

{
    // 使用 IntelliSense 了解相關屬性。 
    // 懸停以檢視現有屬性的描述。
    // 欲了解更多資訊,請通路: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 啟動",
            "type": "cppdbg",
            "request": "launch",
            #指定生成的程式路徑和檔案名
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            #指定tasks.json的标簽名,指定生成程式前執行的參數
            "preLaunchTask": "build",
            "setupCommands": [
                {
                    "description": "為 gdb 啟用整齊列印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description":  "将反彙編風格設定為 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }

    ]
}           

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            #需和launch.json的preLaunchTask一緻
            "label": "build",
            "command": "/usr/bin/gcc",
            #生成程式執行參數
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-lm",
                "-o",
          #關鍵參數,生成程式的目錄和檔案
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "調試器生成的任務。"
        }
    ],
    "version": "2.0.0"
}           

到此所有配置完畢,寫好程式後,按住Ctrl+F5即可在vscode中運作程式。

繼續閱讀