在使用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} - 文件所在的文件夾路徑
歡迎各位指正和補充!