這里將介紹配置Visual Studio Code以使用GCC C ++編譯器(g ++)和GDB調(diào)試器來創(chuàng)建和調(diào)試在Windows上運(yùn)行的程序市殷。
- 安裝VS Code的C/C++擴(kuò)展醋寝。可以通過在擴(kuò)展視圖中搜索“c++”來安裝C/C++擴(kuò)展(Ctrl+Shift+X)囱桨。
通過MSYS2獲取最新版本的Mingw-w64舍肠,該軟件提供了GCC翠语,Mingw-w64和其他有用的C++工具和庫的最新本地版本啡专≈迫Γ可以從MSYS2頁面下載最新的安裝程序,或使用此鏈接到安裝程序鲸鹦。
按照MSYS2網(wǎng)站上的Installation說明安裝Mingw-w64馋嗜。
安裝Mingw-w64工具鏈(
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
)。在MSYS2終端中運(yùn)行pacman
命令橡羞。接受默認(rèn)值以安裝toolchain
組中的所有成員济舆。使用以下步驟將Mingw-w64的
bin
文件夾的路徑添加到Windows的PATH
環(huán)境變量中:例如路徑:C:\\msys64\\mingw64\\bin
。
檢查您的MinGW安裝
要檢查您的Mingw-w64工具是否正確安裝并可用签夭,請打開一個msys2命令的終端提示符并鍵入:
gcc --version
g++ --version
gdb --version
- 如果您沒有看到預(yù)期的輸出或
g++
或gdb
不是已識別的命令第租,請確保您的PATH條目與編譯器所在的Mingw-w64二進(jìn)制位置匹配我纪。如果編譯器不存在于該P(yáng)ATH條目中宣羊,請確保您遵循了MSYS2網(wǎng)站上的說明安裝Mingw-w64仇冯。 - 如果
gcc
有正確的輸出但gdb
沒有,則需要從Mingw-w64工具集中安裝您缺少的軟件包比被。- 缺少
mingw-w64-gdb
軟件包是嘗試編譯時出現(xiàn)“miDebuggerPath的值無效”的消息的原因之一泼舱,如果您的PATH正確娇昙,則需要安裝軟件包。
- 缺少
添加 hello world 示例程序
現(xiàn)在粘貼以下源代碼:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};
for (const string& word : msg) {
cout << word << " ";
}
cout << endl;
}
運(yùn)行 helloworld.cpp
打開 helloworld.cpp噪裕,使其成為活動文件膳音。
-
單擊編輯器右上角的三角形按鈕祭陷。
- 從系統(tǒng)檢測到的編譯器列表中選擇C/C++:g++.exe build and debug active file。
只有在第一次運(yùn)行 helloworld.cpp 時才會要求您選擇編譯器醇蝴。此編譯器將作為“默認(rèn)”編譯器設(shè)置在 tasks.json 文件中哑蔫。
- 構(gòu)建成功后弧呐,程序的輸出將出現(xiàn)在集成的終端中俘枫。
第一次運(yùn)行程序時鸠蚪,C++ 擴(kuò)展將創(chuàng)建 tasks.json茅信,可以在項目的 .vscode 文件夾中找到它墓臭。tasks.json 存儲構(gòu)建配置窿锉。
新 tasks.json 文件應(yīng)類似于以下 JSON:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:\\\\\\\\msys64\\\\\\\\mingw64\\\\\\\\bin\\\\\\\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\\\\\\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
Debug調(diào)試
調(diào)試跟vscode使用其他調(diào)試工具沒什么差別嗡载,
- 如設(shè)置斷點(diǎn)的行,再運(yùn)行Debug埂息。
使用launch.json自定義調(diào)試
使用播放按鈕或F5進(jìn)行調(diào)試時千康,C ++擴(kuò)展會即時創(chuàng)建動態(tài)調(diào)試配置挪哄。
有些情況下,你希望自定義調(diào)試配置砸彬,例如指定在運(yùn)行時傳遞給程序的參數(shù)≈郏可以在launch.json
文件中定義自定義調(diào)試配置滴某。
要創(chuàng)建launch.json
霎奢,請從以下設(shè)置中選擇“添加調(diào)試配置”。
然后,將看到各種預(yù)定義的調(diào)試配置的下拉列表碍彭。選擇C/C++: g++.exe build and debug active file庇忌。
VS Code將創(chuàng)建一個名為launch.json
的文件皆疹,其外觀類似于以下內(nèi)容:
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++: g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\\\\\\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\\\\\\\msys64\\\\\\\\mingw64\\\\\\\\bin\\\\\\\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}
在上面的 JSON 中略就,program
指定您想要調(diào)試的程序。在此残制,它設(shè)置為活動文件夾(${fileDirname}
)和具有.exe
擴(kuò)展名的活動文件名稱(${fileBasenameNoExtension}.exe
)初茶,如果helloworld.cpp
是活動文件恼布,則為helloworld.exe
。args
屬性是要在運(yùn)行時傳遞給程序的參數(shù)數(shù)組倔幼。
默認(rèn)情況下爽待,C++擴(kuò)展不會向您的源代碼添加任何斷點(diǎn),stopAtEntry
的值為false
茂卦。
將stopAtEntry
的值更改為true
组哩,以使調(diào)試器在開始調(diào)試時停在main
方法上伶贰。
從現(xiàn)在開始,播放按鈕和F5將從您的launch.json文件中讀取黍衙,以便在進(jìn)行調(diào)試時啟動程序们豌。