Visual Studio Code 配置C、C++環(huán)境/編譯并運(yùn)行的流程分析
總體流程:
下載安裝vscode
安裝cpptools插件
安裝編譯、調(diào)試環(huán)境
修改vscode調(diào)試配置文件
下載安裝vscode
https://code.visualstudio.com/Download
安裝cpptools插件
打開vscode,按ctrl+p打開快速命令框,輸入以下命令后等待
ext install cpptools
vscode在短暫的聯(lián)網(wǎng)查找后會列出插件列表,如圖:
點擊箭頭所指處的按鈕安裝插件,安裝過程可能會有些慢耐心等待
安裝完成后vscode會提示你重啟vscode,此時重啟即可
安裝編譯、調(diào)試環(huán)境
(若是電腦上原來裝著codeblocks,Dev C++等可以跳過這步,
直接跳到 【配置系統(tǒng)環(huán)境變量path】 這步即可)
目前windows下調(diào)試僅支持 Cygwin 和 MinGW。
這里使用的是MinGW.
下面是MinGW的安裝配置過程:
http://mingw.org/
進(jìn)入官網(wǎng)點擊右側(cè) Download Installer下載安裝器
打開安裝器點擊install準(zhǔn)備安裝:
選擇一個安裝目錄,默認(rèn)為C:\MinGW這里選擇的是A:\MinGW
點擊Continue開始安裝,安裝過程需聯(lián)網(wǎng),若安裝時提示error則需翻墻安裝
安裝過程很快,結(jié)束后Continue按鈕恢復(fù)為可用狀態(tài),點擊完成安裝。
打開MinGW安裝管理器進(jìn)行進(jìn)一步配置
注意這里gdb必選,否則無法調(diào)試
選中幾個需要的項右鍵Make for Installation進(jìn)行標(biāo)記,其中g(shù)cc和g++為c和c++編譯器
選擇完全部想要安裝的項后點擊左上角Installation菜單下的Apply Changes應(yīng)用修改,過程需聯(lián)網(wǎng),中間出現(xiàn)error可先繼續(xù),若最后失敗則需翻墻更新,建議翻墻。
【配置系統(tǒng)環(huán)境變量path】
然后配置系統(tǒng)環(huán)境變量path,這一步為必須
在 我的電腦 上右鍵 屬性:
然后按照下面步驟做即可,注意最后新建的項要與之前MinGW安裝位置相對應(yīng)
Windows7注意,要加入,不是覆蓋!我第一次不小心把原來路徑覆蓋了。。。(因為win7不像win10那么明顯是加入。。)
再次打開vscode,注意配置系統(tǒng)環(huán)境變量path后重啟一下vscode
注意vscode調(diào)試需要在打開的文件夾中進(jìn)行(注意!是用VSC打開文件夾??!,單獨打開一個單獨的cpp是沒有下面的幾個配置文件出現(xiàn)的??!也就是說,這個cpp要在一個文件夾里!不像DevCpp和C-Free可以直接調(diào)試一個單獨的cpp?。。?/p>
打開文件夾后,新建test.cpp進(jìn)行輸入代碼測試:
如圖示進(jìn)入調(diào)試界面選擇C++:
然后會在工作目錄下的生成一個launch.json的啟動配置文件:
使用下面代碼替換該文件:(只是在vsc自己產(chǎn)生的json文件加了一些行)
launch.json中有很多屬性可以設(shè)置, 通過智能提示查看有那些屬性可以設(shè)置, 如果要查看屬性的具體含義, 可以把鼠標(biāo)懸停在屬性上面, 會屬性的使用說明.
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名稱,將會在啟動配置的下拉菜單中顯示
"type": "cppdbg", // 配置類型,這里只能為cppdbg
"request": "launch", // 請求配置類型,可以為launch(啟動)或attach(附加)
"program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 將要進(jìn)行調(diào)試的程序的路徑
"args": [], // 程序調(diào)試時傳遞給程序的命令行參數(shù),一般設(shè)為空即可
"stopAtEntry": false, // 設(shè)為true時程序?qū)和T诔绦蛉肟谔?,一般設(shè)置為false
"cwd": "${workspaceRoot}", // 調(diào)試程序時的工作目錄,一般為${workspaceRoot}即代碼所在目錄
"environment": [],
"externalConsole": true, // 調(diào)試時是否顯示控制臺窗口,一般設(shè)置為true顯示控制臺
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin\\gdb.exe", // miDebugger的路徑,注意這里要與MinGw的路徑對應(yīng)
"preLaunchTask": "g++", // 調(diào)試會話開始前執(zhí)行的任務(wù),一般為編譯程序,c++為g++, c為gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
注意miDebuggerPath要與MinGw的路徑對應(yīng)
替換后保存,然后切換至test.cpp,按F5進(jìn)行調(diào)試,此時會彈出一個信息框要求你配置任務(wù)運(yùn)行程序,點擊它~
在這里隨便選一個或others:
然后用下面代碼替換:
{
"version": "0.1.0",
"command": "g++",
"args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"], // 編譯命令參數(shù)
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
保存一下,然后切換至test.cpp,再次按F5啟動調(diào)試~

配置c_cpp_properties.json
在編輯器中,有小波浪的就是代碼有問題,看下#include,左邊有個燈泡,點擊后跳出配置文件,修改其中的Win32的”includePath”如下,和上文一樣,根據(jù)自己的路徑進(jìn)行調(diào)整即可。經(jīng)測試,下圖中代碼的注冊部分仍是必要部分
{
"name": "Win32",
"includePath": [
"C:/Program Files/MinGW/include/*",
"C:/Program Files/MinGW/lib/gcc/mingw32/5.3.0/include/*"
"C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/*",
"C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/mingw32/*",
"C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/backward/*"
],
"browse": {
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
一勞永逸:因為VS需要為每一個文件夾做單獨配置,所以建議把.vscode文件夾放到你常用的文件夾的頂層,這樣就不用重復(fù)配置了。
不用每個新cpp文件就要一套配置。這些配置在你配置好的文件夾內(nèi)的所有子文件夾和文件都能使用。

最后效果:
設(shè)置斷點,變量監(jiān)視,調(diào)用堆棧的查看:

條件斷點的使用:

由于vscode還不支持中文名文件調(diào)試,因此最好不要使用中文命名文件
總結(jié)
到此這篇關(guān)于Visual Studio Code 配置C、C++環(huán)境/編譯并運(yùn)行的流程分析的文章就介紹到這了,更多相關(guān)vscode 配置C、C++環(huán)境編譯并運(yùn)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實現(xiàn)學(xué)校人員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)學(xué)校人員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
c++ 類函數(shù)作為模板參數(shù)實現(xiàn)方式詳解
這篇文章主要介紹了c++ 類函數(shù)作為模板參數(shù)實現(xiàn)方式,在實現(xiàn)中加入增強(qiáng)邏輯,這種方式對代碼侵入性過高,而且無法控制該邏輯是否需要,如果不需要的話又得重新修改代碼實現(xiàn),需要的朋友可以參考下2023-03-03
C語言讀取data.json文件并存入MySQL數(shù)據(jù)庫小案例(推薦)
本文介紹如何使用C語言結(jié)合cJSON庫讀取JSON文件,并將數(shù)據(jù)存儲到MySQL數(shù)據(jù)庫中,示例代碼包括創(chuàng)建MySQL表的SQL語句和C語言代碼,以及如何編譯和運(yùn)行程序,確保已安裝必要的庫以支持程序運(yùn)行2024-10-10
C++ 詳解數(shù)據(jù)結(jié)構(gòu)中的搜索二叉樹
搜索二叉樹是一種具有良好排序和查找性能的二叉樹數(shù)據(jù)結(jié)構(gòu),包括多種操作,本篇只介紹插入,排序(遍歷),和刪除操作,重點是刪除操作比較復(fù)雜2022-04-04
解析C語言中結(jié)構(gòu)體struct的對齊問題
這篇文章主要介紹了C語言中結(jié)構(gòu)體struct的對齊問題,作者深入到內(nèi)存分配方面來進(jìn)行解析,需要的朋友可以參考下2016-04-04

