vscode 配置C++環(huán)境 基于Deepin/Linux

若文中圖片無法加載,請訪問圖片備份地址

為了避免下次配置環(huán)境時踩坑,現(xiàn)將正確的配置過程記錄下來

1. 版本環(huán)境

Deepin 20.1 社區(qū)版

VScode October 2020 (version 1.51)

版本只要是最近的,影響不大

2. 配置過程

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

若已安裝,升級至最新版即可

sudo apt-get upgrade

2.3 vscode內(nèi)的配置

2.3.1 安裝擴展

安裝C/C++擴展 id:ms-vscode.cpptools

C/C++擴展

有需要的話可安裝中文語言包擴展 id:ms-ceintl.vscode-language-pack-zh-hans

中文語言包擴展

2.3.2 json文件配置

先展示文件目錄結(jié)構(gòu)


文件目錄結(jié)構(gòu)
  1. 首先創(chuàng)建一個工作文件夾,并用vscode打開(此處為cpp_file文件夾)

  2. 創(chuàng)建一個新的文件做測試用例(此處為test.cxx)

    #include <iostream>
    using namespace std;
    
    int main(){
        int a;
        cin>>a;
        cout<<a<<endl;
        return 0;
    }
    
  3. 創(chuàng)建一個文件夾用來存放編譯輸出的可執(zhí)行文件,類似于windows下的.exe文件(此處為out文件夾)

此處為個人喜好,比較喜歡將輸出文件放置在一起,如不需要,可略過此步驟

  1. F5進行調(diào)試,選擇 C++(GDB/LLDB),繼續(xù)選擇 g++ 生成和調(diào)試活動文件
    此時會生成一個.vscode文件夾,里面包含launch.json和tasks.json

    生成.vscode文件夾

    此時處于調(diào)試狀態(tài),可點擊頂部橙色方塊停止調(diào)試。

  2. 編輯launch.json文件

    自動生成的launch.json文件中的參數(shù)若有中文,建議改為英文,tasks.json同理
    請注意下方j(luò)son文件中所寫的一些注釋信息

    {
        // 使用 IntelliSense 了解相關(guān)屬性。 
        // 懸停以查看現(xià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í)行文件不想放在一個文件夾中,則把 /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"
            }
        ]
    }
    
  3. 編輯tasks.json文件

    {
        "tasks": [
            {
                "type":"shell",
                // 此處type的屬性問題下面詳說
                "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中類似,若不需要則刪去 /out
                "options": {
                    "cwd": "${workspaceFolder}"
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "detail": "Task generated by Debugger."
            }
        ],
        "version": "2.0.0"
    }
    

    tasks.json中的type包含兩種屬性,shellprocess,二選一。經(jīng)嘗試,兩種都可成功運行。

    但stackoverflow上關(guān)于此問題的回答中,有人說在運行多個cpp項目時,將process改成shell后才成功運行

    因此綜合考慮,此處用了shell屬性

    3. 調(diào)試運行

    不出意外的話,此時就可以編譯運行c++了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容