Vscode配置C/C++環(huán)境使用minGW(保姆級(jí)配置過(guò)程)
本人配置過(guò)程
準(zhǔn)備工作:

獲取最新版的mingw 或 本地下載地址,根據(jù)系統(tǒng)選擇合適的版本(這里以win11(與win10無(wú)差別)為例)。


等待下載。
下載完成后進(jìn)入安裝界面,由于本人電腦為64位(i686為32位),配置如下即可。

下圖中1路徑選擇(記住,下一部需要配置環(huán)境變量),2隨意勾選。

配置minGW環(huán)境變量
開(kāi)始中搜索如下關(guān)鍵字,進(jìn)入環(huán)境變量設(shè)置。


下圖2即為mingw中bin的安裝路徑

該路徑下的部分文件如圖所示。

配置好后點(diǎn)擊應(yīng)用即可。
檢查minGW是否安裝成功
在命令行中分別輸入g++ --version gdb --version,出現(xiàn)以下內(nèi)容則配置成功(若沒(méi)有如下內(nèi)容,則檢查環(huán)境配置過(guò)程各個(gè)步驟)。

創(chuàng)建你的第一個(gè)helloworld
在 Windows 命令提示符下,創(chuàng)建一個(gè)名為的空文件夾projects,您可以在其中放置所有 VS Code 項(xiàng)目。然后創(chuàng)建一個(gè)名為 的子文件夾helloworld,導(dǎo)航到其中,然后通過(guò)輸入以下命令在該文件夾中打開(kāi) VS Code:
mkdir projects cd projects mkdir helloworld cd helloworld code .
“code .” 命令在當(dāng)前工作文件夾中打開(kāi) VsCode。
創(chuàng)建helloworld.cpp文件。

將以下代碼復(fù)制到helloworld.cpp中。
#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;
}
構(gòu)建helloworld.cpp
接下來(lái),您將創(chuàng)建一個(gè)tasks.json文件來(lái)告訴 VS Code 如何構(gòu)建(編譯)程序。此任務(wù)將調(diào)用 g++ 編譯器以基于源代碼創(chuàng)建可執(zhí)行文件。
從主菜單中,選擇“終端(terminal)” >“配置默認(rèn)構(gòu)建任務(wù)(Configure Default Build Task)”。在下拉列表中,將顯示一個(gè)任務(wù)下拉列表,其中列出了 C++ 編譯器的各種預(yù)定義構(gòu)建任務(wù)。選擇"g++.exe build active file",這將構(gòu)建當(dāng)前在編輯器中顯示(活動(dòng))的文件。
這將tasks.json在.vscode文件夾中創(chuàng)建一個(gè)文件并在編輯器中打開(kāi)它。
您的新tasks.json文件應(yīng)該類似于下面的 JSON:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: \"C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe\""
}
]
}
不懂參數(shù)含義的默認(rèn)即可。
該command設(shè)置指定要運(yùn)行的程序;在這種情況下是 g++。該args數(shù)組指定將傳遞給 g++ 的命令行參數(shù)。這些參數(shù)必須按照編譯器預(yù)期的順序指定。這個(gè)任務(wù)告訴 g++ 獲取活動(dòng)文件 ( ${file}),編譯它,并在當(dāng)前目錄 ( ${fileDirname}) 中創(chuàng)建一個(gè)與活動(dòng)文件同名但帶有.exe擴(kuò)展名 ( ${fileBasenameNoExtension}.exe)的可執(zhí)行文件,helloworld.exe為我們的示例。
注意:您可以tasks.json在變量參考中了解有關(guān)變量的更多信息。
該label值是您將在任務(wù)列表中看到的值;你可以隨意命名它。
對(duì)象中的"isDefault": true值group指定當(dāng)您按Ctrl+Shift+B時(shí)將運(yùn)行此任務(wù)。此屬性僅為方便起見(jiàn);如果您將其設(shè)置為 false,您仍然可以使用Tasks: Run Build Task從終端菜單運(yùn)行它。
運(yùn)行構(gòu)建
回到helloworld.cpp. 您的任務(wù)會(huì)構(gòu)建活動(dòng)文件,而您想要構(gòu)建helloworld.cpp.
要運(yùn)行中定義的構(gòu)建任務(wù)tasks.json,請(qǐng)按Ctrl+Shift+B或從終端主菜單中選擇Run Build Task。
任務(wù)開(kāi)始時(shí),您應(yīng)該會(huì)看到集成終端面板出現(xiàn)在源代碼編輯器下方。任務(wù)完成后,終端會(huì)顯示編譯器的輸出,指示構(gòu)建是成功還是失敗。對(duì)于成功的 g++ 構(gòu)建,輸出如下所示:

顯示成功后,并生成一個(gè)exe文件。
如果顯示不成功(可能是權(quán)限不夠),需關(guān)閉軟件重新用管理員模式打開(kāi)vscode,并重新執(zhí)行上述操作。
最后在helloworld目錄下通過(guò)鍵入./helloworld(或者./helloworld.exe如果您使用 PowerShell 終端)在終端中運(yùn)行,結(jié)果如下所示。

到這里就已經(jīng)基本快成功了,最后還剩下調(diào)試功能。
調(diào)試 helloworld.cpp
接下來(lái),您將創(chuàng)建一個(gè)launch.json文件來(lái)配置 VS Code,以便在您按F5調(diào)試程序時(shí)啟動(dòng) GDB 調(diào)試器。
從主菜單中,選擇Run > Add Configuration…,然后選擇C++ (GDB/LLDB)。
然后,您將看到各種預(yù)定義調(diào)試配置的下拉列表。選擇g++.exe build and debug active file。
成功后顯示如下:

并生成launch.json文件,在編輯器中打開(kāi)它,然后構(gòu)建并運(yùn)行“helloworld”。launch.json如下所示:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - build active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\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"
}
]
}
這里也一樣,不懂參數(shù)含義的默認(rèn)即可。
該program設(shè)置指定要調(diào)試的程序。這被設(shè)置為活動(dòng)文件夾${fileDirname}和文件名活躍與.exe擴(kuò)展${fileBasenameNoExtension}.exe,這是否helloworld.cpp是活動(dòng)的文件會(huì)helloworld.exe。
默認(rèn)情況下,C++ 擴(kuò)展不會(huì)向您的源代碼添加任何斷點(diǎn),并且該stopAtEntry值設(shè)置為false.
將stopAtEntry值更改true為使調(diào)試器main在您開(kāi)始調(diào)試時(shí)停止該方法。
注意:該
preLaunchTask設(shè)置用于指定啟動(dòng)前要執(zhí)行的任務(wù)。確保它與tasks.json文件label設(shè)置一致。
到此這篇關(guān)于Vscode配置C/C++環(huán)境使用minGW(保姆級(jí)配置過(guò)程)的文章就介紹到這了,更多相關(guān)Vscode配置minGW內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c語(yǔ)言獲取當(dāng)前工作路徑的實(shí)現(xiàn)代碼(windows/linux)
這篇文章主要介紹了c語(yǔ)言獲取當(dāng)前工作路徑的實(shí)現(xiàn)代碼(windows/linux),需要的朋友可以參考下2017-09-09
C語(yǔ)言中全局?jǐn)?shù)組和局部數(shù)組的問(wèn)題
今天同學(xué)遇到一個(gè)在C語(yǔ)言中全局?jǐn)?shù)組和局部數(shù)組的問(wèn)題,卡了許久,我也沒(méi)有第一時(shí)間看出問(wèn)題,現(xiàn)在把問(wèn)題梳理一下,并給出解決方案,需要的朋友可以參考下2012-12-12
C++實(shí)現(xiàn)簡(jiǎn)易的彈球小游戲
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)易的彈球小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
C++標(biāo)準(zhǔn)模板庫(kù)vector的常用操作
今天小編就為大家分享一篇關(guān)于C++標(biāo)準(zhǔn)模板庫(kù)vector的常用操作,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
opencv3/C++ 使用Tracker實(shí)現(xiàn)簡(jiǎn)單目標(biāo)跟蹤
今天小編就為大家分享一篇opencv3/C++ 使用Tracker實(shí)現(xiàn)簡(jiǎn)單目標(biāo)跟蹤,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
C++分析構(gòu)造函數(shù)與析造函數(shù)的特點(diǎn)梳理
本文對(duì)類的構(gòu)造函數(shù)和析構(gòu)函數(shù)進(jìn)行總結(jié),主要包括了構(gòu)造函數(shù)的初始化、重載、使用參數(shù)和默認(rèn)參數(shù),拷貝構(gòu)造函數(shù)和析構(gòu)函數(shù),希望能幫助讀者在程序開(kāi)發(fā)中更好的理解類,屬于C/C++基礎(chǔ)2022-05-05
C/C++實(shí)現(xiàn)Windows注冊(cè)表的基本操作
Windows注冊(cè)表(Registry)是Windows操作系統(tǒng)中用于存儲(chǔ)系統(tǒng)配置信息、用戶設(shè)置和應(yīng)用程序數(shù)據(jù)的一個(gè)集中式數(shù)據(jù)庫(kù),本文主要為大家介紹了C++對(duì)注冊(cè)表的基本操作,感興趣的小伙伴可以了解下2023-11-11

