linux上的vs code的C 環境搭建

2022-04-28 23:12:14 字數 3349 閱讀 5082

最近練習leetcode程式設計,我希望在manjaro系統的vs code上可以單步除錯c++**,找了很多資料都不能正常執行,所以參考官方資料自己整好了,記錄一下。

首先完成如下工作

安裝vs code;

安裝外掛程式,如下圖所示

確認linux系統已經正確安裝gcc,輸入如下命令

gcc -v # 檢視gcc版本

sudo pacman -s build-essential gdb # 安裝必要工具軟體

在本地建立目錄,我在本地建立了leetcode的目錄,所以有如下的步驟

mkdir project

cd project

mkdir

cd helloworld

code . # 在當前目錄下開啟vs code,當前開啟的資料夾就是這個「工作空間」

閱讀完本部落格之後,你會在當前的目錄下面建立下面的3個檔案

如圖所示,新增新的原始檔helloworld.cpp

在該檔案中貼上如下的源**

#include #include #include using namespace std;

int main()

; for (const string& word : msg)

cout << endl;

}

然後儲存該檔案。

接下來,你將建立乙個task.json檔案告訴vs code如何構建(編譯)當前的程式。這將觸發g++編譯器按照源**建立乙個可執行程式。在主選單選擇終端->配置預設生成任務,然後在下拉列表選擇g++ build active file,如下圖所示

你將在.vscode資料夾下面看到tasks.json檔案,我們進一步編輯這個檔案

",

"-o",

"$/$"

],"options": "

},"problemmatcher": [

"$gcc"

],"group":

} ]}

關於json檔案中變數的具體含義可以進一步參考visual studio code variables reference

檔案中的指令指定了程式如何執行,當前檔案中的args引數指定了傳輸給gcc的引數,這些引數必須按照編譯器期望的順序排列。

這個任務告訴g++將原始檔$編譯,在當前資料夾下面建立可執行檔案helloword,注意可執行檔案的名稱和原始檔相同,但是去掉了擴充套件字尾名。label字段表示你能看到的任務列表,你可以寫成任何你想寫的東西。group中的"isdefault": true表示你可以使用ctrl+shift+b執行該任務,這個僅僅是為了使用上的方便,你依然可以通過選單中的選項執行該任務。

回到原來的helloworld.cpp程式,按下ctrl+shift+b執行該任務,請留意編輯器下方的終端的列印,在任務執行結束之後一般會提示成功或者失敗,如果執行順利,你可以看到如下的提示

如果留意可以看到當前的資料夾中已經生成了可執行程式helloworld檔案,開啟新的終端,即可執行該程式

./helloworld # 執行可執行程式
你可以修改這個檔案中的引數,比如將$/*.cpp替換$,或者也可以將$/$替換成乙個硬編碼的程式名稱helloworld.out

接下來你將建立launch.json檔案,當按下f5的時候vs code呼叫gdb的偵錯程式用於除錯程式。找到選單中的執行 > 新增配置,然後選擇c++ (gdb/lldb),如下圖所示

我們選擇g++ build and debug active file,你可以看到此處vs code自動建立了檔案launch.json檔案,檔案的內容如下

/$",

"args": ,

"stopatentry": false,

"cwd": "$",

"environment": ,

"externalconsole": false,

"mimode": "gdb",

"setupcommands": [

],"prelaunchtask": "c/c++: g++ build active file",

"midebuggerpath": "/usr/bin/gdb"}]

}

很明顯在這個檔案中program指定了需要debug的程式,和之前的檔案一樣,此處就是沒有字尾名的與原始檔一樣的程式,這個例子中就是helloworld。預設情況下,c++外掛程式不會在**中插入任何斷點,所以stopatentryfalse。如果將該項改為true,那麼就可以讓偵錯程式停在主函式的斷點處。

回到原始檔,按下f5就可以開始除錯了,在**編輯器的上訪可以看到除錯的控制條,包括了單步除錯,跳過除錯,重啟除錯和停止除錯的功能。稍微探索一下就可以發現,f9是新增斷點,其他的除錯方法滑鼠懸停在上面都會顯示快捷鍵,你看到的編輯器應該是這樣的

除錯中可以看到每個變數的值,以及監視視窗。

需要注意的是,當前的版本(2023年3月份之後)不會在單步除錯模式下將cout的結果列印出來,只有程式執行完成之後才會統一列印出來。

vscode上幾個好用的python外掛程式

bracket pair colorizer 主要作用是增色,方便區分不同元素,使用者可自行選擇需要匹配的元素和相應的顏色。code spell checker 乙個英文拼寫檢查器,主要幫助寫正確變數名和注釋 233333 guides 縮排標識器,對不同的縮排進行不同的明顯標識,對大量的pytho...

Mac 上配置VScode的 C C 環境

剛使用上vscode,之前一直用的是 pycharm 或者jupyter notebook。說實話,網上看了那麼多攻略貼,大都大同小異,一堆操作猛如虎 所謂好用的 外掛程式 等等鋪天蓋地 也有可有啥用呢?怎麼使用,以及為什麼使用,以及底層邏輯都沒幾個講清楚的!主要是太小白了 為什麼需要自定義laun...

Linux下C程式編寫(VS Code

外掛程式 說明chinese simplified lanague package 中文語言外掛程式 c c c c 基礎包 remote development 會安裝一堆包括ssh remote的外掛程式 code runner 執行器 visual studio intellicode 自動聯...