加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

VS Code 編譯和調(diào)試C/C++程序也可以這么爽

05/02 07:13
4803
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

本文為大家介紹,如何在VS Code上安裝一個(gè)C/C++編譯器,為VS Code 裝上一雙會(huì)飛的翅膀,廢話不多說,我們開始準(zhǔn)備起飛。

首先,安裝好VS Code之后,需要給其安裝一個(gè)C/C++擴(kuò)展。在擴(kuò)展庫里搜索 “c++”。

由于VS Code只是個(gè)編輯器,下面就是安裝C/C++編譯器了,這里我們選擇Mingw。它的全稱是Minimalist GNU on Windows,它將開源gcc, g++編譯器移植到Windows平臺(tái),并且包含了Win32 API,從而可以編譯出能在Windows平臺(tái)下運(yùn)行的可執(zhí)行程序。

Mingw是托管在SourceForge 上的,可以從SourceForge 中下載Windows Mingw-w64 installer,通過安裝器安裝。不過,在國內(nèi)這個(gè)安裝器好像被墻掉了,在安裝的過程中會(huì)出現(xiàn)“cannot download repository.txt”的報(bào)錯(cuò),有條件的可以使用VPN安裝。

Windows Mingw-w64 installer下載地址:

https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download

這里我采用了離線安裝的方法安裝Mingw,不過下載速度會(huì)有些慢,請(qǐng)耐心等待。

離線包下載地址:

https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/sjlj/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z/download

下載完成后,會(huì)得到一個(gè)壓縮包(x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z),并將其解壓。

配置系統(tǒng)環(huán)境變量,將bin目錄添加到環(huán)境變量Path中。

環(huán)境變量配置完成后,我們可以打開命令行窗口查看g++/gdb版本。

g++ --version
gcc --version
gdb --version

安裝配置成功后,我們就可以開心的寫個(gè)hello world 慶祝一下了!

新建一個(gè)文件夾hello,使用VS Code把文件夾打開,在工作空間新建一個(gè)cpp文件helloworld.cpp,并添加代碼。

下面該如何編譯呢?在菜單欄選擇 Terminal > Configure Default Build Task,將會(huì)出現(xiàn)一個(gè)下拉列表。

選擇g++.exe build active file,在工作空間的.vscode目錄將會(huì)創(chuàng)建一個(gè)task.json文件。

{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++.exe build active file",
"command": "C:mingw64bing++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

回到hellowork.cpp文件,使用快捷鍵Ctrl+Shift+B,將會(huì)執(zhí)行編譯任務(wù),在下方的Terminal也會(huì)有相應(yīng)的信息打印。

再新建一個(gè)Terminal,執(zhí)行編譯生成的可執(zhí)行文件helloworld.exe.

接下來我們?cè)賮砜纯矗趺慈フ{(diào)試程序呢?我們切回到helloworld.cpp文件,設(shè)置好斷點(diǎn),按F5快捷鍵或者 Run > Start Debugging,就會(huì)進(jìn)入調(diào)試模式,并會(huì)在.vscode目錄下生成一個(gè)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 - 生成和調(diào)試活動(dòng)文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:mingw64bingdb.exe",
"setupCommands": [
{
"description": "為 gdb 啟用整齊打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}

同時(shí),我們可以使用調(diào)試控制面板控制程序的執(zhí)行流程。

那我們?cè)俣鄬憥仔谐绦?,看看調(diào)試效果。我們可以看到當(dāng)執(zhí)行到數(shù)組array賦值語句后,左側(cè)變量欄里的array值會(huì)有相應(yīng)的變化,會(huì)顯示為初始值。

利用調(diào)試控制面板,讓程序進(jìn)入循環(huán),當(dāng)執(zhí)行完array重新賦值語句后,左側(cè)變量欄里的array值也會(huì)相應(yīng)的更新。

如果想要查看其它變量的值,可以在代碼里右鍵,會(huì)彈出一個(gè)選項(xiàng)菜單,選擇Add to Watch,在左側(cè)Watch欄里將會(huì)列出這個(gè)變量和其值。

最后在看一下最終的目錄結(jié)構(gòu)。另外,還有更多的功能等待大家去發(fā)現(xiàn),趕緊行動(dòng)起來吧。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
FTLF1323F2MTR 1 Finisar Corporation Transceiver, 1261nm Min, 1360nm Max, 156Mbps(Tx), 156Mbps(Rx), LC Connector, Through Hole Mount
$79.11 查看
CPC1718J 1 IXYS Corporation Transistor Output SSR, 1-Channel, 2500V Isolation, ROHS COMPLIANT, ISOPLUS264, 4 PIN
$6.72 查看
AD73311ARSZ-REEL 1 Rochester Electronics LLC SPECIALTY TELECOM CIRCUIT, PDSO20, SSOP-20
$9.29 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜