博客 / 詳情

返回

Linux Mint下使用vscode編譯C++代碼

Linux Mint下使用vscode編譯C++代碼

vscode

首先要説明vscode不是IDE,因此本身沒有所謂的一鍵配置、一鍵編譯/運行、大量可視化項目操作選項等功能,實際上是一個擁有豐富插件且可定製化極高的文本編輯器。當我們創建完C++文件後按照在IDE(VS2022等)思路下會下意識的使用快捷鍵一鍵編譯運行,這時vscode提示你要提供launch.json和tasks.json,這兩個文件就是vscode編譯C++代碼時所要用到的配置文件。當然如果你只是將vscode當作一個文本編輯器,並依然使用終端命令來編譯、調試與運行,也是可以的。

tasks.json

{
    //一個簡單的tasks.json示例
    "version": "2.0.0",
    "tasks": [
        {
            "label": "C/C++: g++ build active file", // 任務名稱
            "type": "cppbuild", // 任務類型
            "command": "/usr/bin/g++", // 執行的編譯命令,如果編譯器加入了環境變量可直接g++
            "args": [ // 命令參數
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": {
                "kind": "build", // 任務分組類型
                "isDefault": true // 是否為默認任務
            },
            "problemMatcher": [
                "$gcc"
            ], // 錯誤匹配器
            "detail": "Generated by VS Code." // 任務描述
        }
    ]
}

值得一提的是vscode默認是不包含tasks.json的,如果直接編譯運行的話仍然提示要提供launch.json

launch.json

{
  //一個簡單的launch.json
  "configurations": [
    {
      "name": "(gdb) 啓動",
      "type": "cppdbg",     //指定的調試器類型
      "request": "launch",  //調試運行
      "preLaunchTask": "C/C++: g++ build active file", //如果要求先生成文件再運行時,需要加上這個參數,參數值要和tasks.json中的"label"一致
      "program": "${workspaceFolder}/${fileBasenameNoExtension}",   //運行的文件名也要與生成的文件名一致
      "args": [],
      "stopAtEntry": false,     //為true表示在運行的第一行代碼處停止,為false表示在斷點處停止
      "cwd": "${fileDirname}",  //工作目錄
      "environment": [],        //設置調試的環境變量
      "externalConsole": false, //使用外置終端,還是vscode內部終端
      "MIMode": "gdb",          //指定的調試器,如果環境變量沒有調試器的目錄,需要加上參數"miDebuggerPath",值為調試器的目錄
      "setupCommands": [        //調試器內部命令
        {
          "description": "為 gdb 啓用整齊打印",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        },
        {
          "description": "將反彙編風格設置為 Intel",
          "text": "-gdb-set disassembly-flavor intel",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

當兩個配置文件都編寫完畢後,將其放入.vscode文件夾中,然後回到C++代碼中即可正常編譯、調試與運行。關於tasks.json和tasks.json其他高級命令與用法可參考微軟vscode官方文檔。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.