若文中圖片無(wú)法加載允睹,請(qǐng)?jiān)L問(wèn)圖片備份地址
為了避免下次配置環(huán)境時(shí)踩坑,現(xiàn)將正確的配置過(guò)程記錄下來(lái)
1. 版本環(huán)境
Deepin 20.1 社區(qū)版
VScode October 2020 (version 1.51)
版本只要是最近的弱卡,影響不大
2. 配置過(guò)程
2.1 安裝vscode
此處各顯神通即可,Deepin可直接在應(yīng)用商店中安裝荧库,其他Linux版本可去官網(wǎng)下載.deb文件后安裝汁果。
2.2 安裝依賴
在終端依次執(zhí)行下列命令:
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install gdb
若已安裝,升級(jí)至最新版即可
sudo apt-get upgrade
2.3 vscode內(nèi)的配置
2.3.1 安裝擴(kuò)展
安裝C/C++擴(kuò)展 id:ms-vscode.cpptools
有需要的話可安裝中文語(yǔ)言包擴(kuò)展 id:ms-ceintl.vscode-language-pack-zh-hans
2.3.2 json文件配置
先展示文件目錄結(jié)構(gòu)
首先創(chuàng)建一個(gè)工作文件夾疼电,并用vscode打開(kāi)(此處為cpp_file文件夾)
-
創(chuàng)建一個(gè)新的文件做測(cè)試用例(此處為test.cxx)
#include <iostream> using namespace std; int main(){ int a; cin>>a; cout<<a<<endl; return 0; }
創(chuàng)建一個(gè)文件夾用來(lái)存放編譯輸出的可執(zhí)行文件嚼锄,類似于windows下的.exe文件(此處為out文件夾)
此處為個(gè)人喜好,比較喜歡將輸出文件放置在一起蔽豺,如不需要区丑,可略過(guò)此步驟
-
按
F5
進(jìn)行調(diào)試,選擇C++(GDB/LLDB)
,繼續(xù)選擇g++ 生成和調(diào)試活動(dòng)文件
此時(shí)會(huì)生成一個(gè).vscode文件夾沧侥,里面包含launch.json和tasks.json
生成.vscode文件夾此時(shí)處于調(diào)試狀態(tài)可霎,可點(diǎn)擊頂部
橙色方塊
停止調(diào)試。 -
編輯launch.json文件
自動(dòng)生成的launch.json文件中的參數(shù)若有中文宴杀,建議改為英文癣朗,tasks.json同理
請(qǐng)注意下方j(luò)son文件中所寫的一些注釋信息{ // 使用 IntelliSense 了解相關(guān)屬性。 // 懸停以查看現(xiàn)有屬性的描述旺罢。 // 欲了解更多信息旷余,請(qǐng)?jiān)L問(wèn): https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceRoot}/out/${fileBasenameNoExtension}", // 此處若可執(zhí)行文件不想放在一個(gè)文件夾中,則把 /out 刪去即可 "args": [], "stopAtEntry": false, "cwd": "${workspaceRoot}", // 此處${workspaceRoot}與${workspaceFolder}應(yīng)該類似扁达,但網(wǎng)上資料大部分用的前者 "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: g++ build active file", // 此處要與tasks.json中的label相同 "miDebuggerPath": "/usr/bin/gdb" } ] }
-
編輯tasks.json文件
{ "tasks": [ { "type":"shell", // 此處type的屬性問(wèn)題下面詳說(shuō) "label": "C/C++: g++ build active file", "command": "/usr/bin/g++", "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": false }, "args": [ "-g", "${file}", "-o", "${workspaceRoot}/out/${fileBasenameNoExtension}" ], // 此處與launch.json中類似正卧,若不需要?jiǎng)t刪去 /out "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "Task generated by Debugger." } ], "version": "2.0.0" }
tasks.json中的
type
包含兩種屬性,shell
和process
跪解,二選一炉旷。經(jīng)嘗試,兩種都可成功運(yùn)行惠遏。但stackoverflow上關(guān)于此問(wèn)題的回答中砾跃,有人說(shuō)在運(yùn)行多個(gè)cpp項(xiàng)目時(shí),將
process
改成shell
后才成功運(yùn)行因此綜合考慮节吮,此處用了shell屬性
3. 調(diào)試運(yùn)行
不出意外的話抽高,此時(shí)就可以編譯運(yùn)行c++了!