launch.json / tasks.json / c_cpp_properties.json 解析 配置文件 C++ VSCode


在使用VS Code進行C/C++的開發過程中,有三個至關重要的配置文件,分別是 tasks.json, launch.json  c_cpp_properties.json

1. tasks.json

tasks.json 是在 vscode 中輔助程序編譯的模塊,可以代你執行類似於在命令行輸入 gcc hello.c -o hello” 命令的操作,你只要在圖形界面下操作即可生成可執行文件。

當你在項目文件夾下打開 vscode 后:

1) 選擇“終端”;  2) 選擇“配置任務”;  3) 選擇你想使用的編譯器(這里本人選擇 gcc);

即可生成默認的 tasks.json 文件。

可以看到在文件夾下生成了名為 .vscode 的文件,tasks.json 就放在其中。

⭐其中比較重要的幾個變量:

復制代碼
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",        //任務類型,如果是shell,下面的command就相當於執行shell命令
            "label": "環境配置測試",     //任務的名稱,可以修改,但一定要和launch中的"preLaunchTask"項保持一致
            "command": "/usr/bin/gcc", //編譯器的路徑
            "args": [                  //編譯時使用的參數,和命令行下相同
                "-g",
                "${fileDirname}/hello.c",
                "-o",
                "${fileDirname}/hello"
            ],
            //上述內容相當於在命令行下輸入了: gcc hello.c -o hello
            "options": {
                "cwd": "/usr/bin"     //編譯器的目錄
            },
            "problemMatcher": [
                "$gcc"             //使用gcc捕捉錯誤
            ],
            "group": "build",
            "detail": "compiler: /usr/bin/gcc"      //一些描述性信息
        }
    ]
}
復制代碼

 也可以參考 Integrate with External Tools via Tasks 官方文檔 文檔進一步了解

 

2. launch.json

launch.json 是用於運行 ( run ) 和調試 ( debug ) 的配置文件,可以指定語言環境,指定調試類型等等內容。

打開 VS Code 后,按照下圖所示的提示,從左向右依次點擊(也可以在上方菜單欄依次選擇 :1) “運行”;2) “打開配置”;3) 選擇 " C++ (GDB/LLDB) " 即可生成 launch.json),創建 launch.json 文件

生成的 launch.json 也放在 .vscode 文件夾中

⭐其中各種變量的內容及涵義如下:

復制代碼
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "運行和調試",         //運行和調試任務的名稱,可自定義
            "type": "cppdbg",          //配置類型,默認即可
            "request": "launch",       //launch模式允許我們打斷點進行調試,默認即可
            "program": "${fileDirname}/hello", //程序目錄,這里相當於"./hello"
            "args": [],                //程序(main函數)的入口參數
            "stopAtEntry": false,       //在入口處暫停,選true相當於在入口處增加斷點
            "cwd": "${workspaceFolder}",//當前的文件目錄
            "environment": [],          //添加到程序的環境變量
            "externalConsole": false,   //外部控制台,true在調試時會開啟系統控制台窗口,false會使用vscode自帶的調試控制台
            "MIMode": "gdb",            //使用gdb進行調試
            "setupCommands": [         //用來設置gdb的參數,默認即可
                {
                    "description": "為 gdb 啟用整齊打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "環境配置測試",    //運行和調試前要執行的task(編譯)任務,名稱要對應上task.json里的"label"任務名
            "miDebuggerPath": "/usr/bin/gdb"  //debug調試工具的路徑,這里使用gdb所在的路徑
        }
    ]
復制代碼

也可以參考 Configuring C/C++ debugging官方文檔  Debugging in VS Code官方文檔 進行設置

 

3. c_cpp_properties.json

c_cpp_properties.json 主要用來設置包含頭文件的路徑,設置 C/C++ 支持的版本號等等。

1) 點擊 Ctrl + Shift +P  彈出命令搜索框;2) 選擇  C/C++: 編輯配置 (UI)  即可生成 c_cpp_properties.json 文件,此文件同樣包含在.vscode文件夾中。

⭐其中主要的變量名稱和涵義如下:

復制代碼
{
    "configurations": [
        {
            "name": "Linux",        //配置名稱,默認為系統名,可以自行更改
            "includePath": [        //(常用)運行項目包含.h頭文件的目錄,
                "${workspaceFolder}/**"//此處會匹配工作文件下的所有文件
            ],                      //添加"compilerPath"后,系統include路徑可不寫明
            "defines": [],        //(常用)定義一些需要的變量,等價於在編譯時寫"-D變量" 
            "compilerPath": "/usr/bin/gcc",     //編譯器的路徑
            "cStandard": "gnu17",               //C標准的版本
            "cppStandard": "gnu++14",           //C++標准的版本
            "intelliSenseMode": "gcc-x64"       //IntelliSense的一些配置,默認即可
        }
    ],
    "version": 4
}
復制代碼

也可參考 c_cpp_properties.json 官方文檔 設置更多內容。

 

在上述三個配置文件中,我們會看到類似於  ${workspaceFolder}  等等類似的描述,這些描述是 VS Code 預定義變量名,可以用來代指工作目錄的路徑,環境變量的名稱,生成文件的名稱等等。使用這些預定義的變量名可以使得我們的開發過程更加高效,同時可移植性也大大增強。更多內容可以參照官方文檔 Variables Reference

⭐一般我們比較常見的變量名有:
${workspaceFolder} - VS Code當前打開工作區文件夾的路徑
${file} - 當前打開文件的絕對路徑
${fileBasename} - 當前打開文件的名稱
${fileBasenameNoExtension} - 當前打開文件的名稱,但是不加后綴名
${fileDirname} - 文件所在的文件夾路徑

 

歡迎各位指正和補充!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM