說明
VSCode是個編輯器,默認不帶編譯和調試環境,需要自行安裝編譯器,調試可以用其插件完成。
編譯套件選用的是TDM-GCC,方便易用。(Codeblocks、Dev-Cpp等默認帶的都是這款)。安裝時會自動添加路徑到環境變量PATH。
下載
- VS Code :https://code.visualstudio.com/Download //.zip為綠色版
- TDM-GCC :http://tdm-gcc.tdragon.net/download //選擇對應的系統
配置
- 打開powershell,輸入gcc檢測gcc是否安裝成功;
- 打開VS Code,點擴展,把需要的插件和主題都安裝了;
- 建好純英文的工作目錄(VS Code對中文支持較差),在VSCode的資源管理器中打開這個目錄,按F5,會自動創建.vscode目錄下的launch.json文件,編輯並保存:
{
"version": "0.2.0",
"configurations": [{
"name": "C Launch (GDB)", // 配置名稱,將會在啟動配置的下拉菜單中顯示
"type": "cppdbg", // 配置類型,這里只能為cppdbg
"request": "launch", // 請求配置類型,可以為launch(啟動)或attach(附加)
"launchOptionType": "Local", // 調試器啟動類型,這里只能為Local
"targetArchitecture": "x86", // 生成目標架構,一般為x86或x64,可以為x86, arm, arm64, mips, x64, amd64, x86_64
"program": "${cwd}\\${fileBasenameNoExtension}.exe", // 將要進行調試的程序的路徑
"miDebuggerPath": "gdb32.exe", // miDebugger的路徑,注意這里要與MinGw的路徑對應。64位系統用gdb64.exe
"args": [""], // 程序調試時傳遞給程序的命令行參數,一般設為空即可
"stopAtEntry": false, // 設為true時程序將暫停在程序入口處,我一般設置為true
"cwd": "${workspaceRoot}", // 調試程序時的工作目錄,一般為${workspaceRoot}即代碼所在目錄
"externalConsole": true, // 調試時是否顯示控制台窗口,一般設置為true顯示控制台
"preLaunchTask": "gcc" // 調試會話開始前執行的任務,一般為編譯程序,c++為g++, c為gcc
}]
}
- 在.vscode目錄下新建tasks.json文件:
{
"version": "0.1.0",
"command": "gcc", // 編譯C++用g++,用MinGW和clang的自行修改。
"args": ["${file}", "-o", "${fileBasenameNoExtension}.exe", "-g3", "-Og", "-Wall", "-static-libgcc", "-std=c11", "-fexec-charset=GBK", "-finput-charset=UTF-8"], // 編譯命令參數,C++可用-std=c++14
"showOutput": "always",
"problemMatcher": {
"owner": "c",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
- 在.vscode目錄下新建settings.json文件:
// 將設置放入此文件中以覆蓋默認值和用戶設置。
{
"files.defaultLanguage": "c",
"code-runner.runInTerminal": false,
"code-runner.executorMap": {
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt -Wall -g3 -Og -static-libgcc -std=c11 && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -Wall -g3 -Og -static-libgcc -std=c++14 && $dir$fileNameWithoutExt"
}
}
- 在.vscode目錄下新建c_cpp_properties.json文件:
// 目錄根據實際修改
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceRoot}",
"C:/TDM-GCC-32/include",
"C:/TDM-GCC-32/lib/gcc/mingw32/5.1.0/include"
],
"browse": {
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "",
"path": [
"C:/TDM-GCC-32/include",
"C:/TDM-GCC-32/lib/gcc/mingw32/5.1.0/include"
]
}
}
],
"clang_format": {
"style": "file",
"fallback-style": "LLVM",
"sort-includes": false
}
}
7.在當前目錄下新建一個.c文件,在調試面板中測試啦,或直接按F5。
技巧
- 因為VS需要為每一個文件夾做單獨配置,所以建議把.vscode文件夾放到你常用的文件夾的頂層,這樣就不用重復配置了。(里面一般有:launch.json,tasks.json,settings.json,c_cpp_properties.json 四個基本的文件用於支持編譯輸出)
- Ctrl + = 或 -(退格鍵左邊)可放大縮小,再把各窗口拉一拉,配合逼格的主題簡直完美!
- 雖然配置了環境變量,仍需要將其中includePath項的路徑更改為安裝的TDM-GCC的實際路徑,這一項是讓VSCode識別到C/C++的頭文件,不然找不到的時候會報錯。
參考文章:
