—— 基于 VS Code 官方文檔的全面的、具體的入門級(jí)教程
歡迎訪問作者的主頁:Xi Xu’s Home Page
本教程由文章(本文)和視頻組成。
在本教程中,您將為使用 UCRT64 中的 GCC C/C++ 編譯器(gcc/g++)和 GDB 調(diào)試器配置 VS Code 來創(chuàng)建在 Windows 上運(yùn)行的程序。
配置 VS Code 后,您將在 VS Code 中生成和調(diào)試一個(gè)簡(jiǎn)單的 Hello World 程序。本教程不會(huì)教您有關(guān) GCC,GDB,UCRT64 或 C/C++ 語言的知識(shí)。對(duì)于這些主題,網(wǎng)絡(luò)上有許多很好的資源。
本教程內(nèi)容較多,但若嚴(yán)格按照本教程操作,就能輕松實(shí)現(xiàn) Visual Studio Code – C/C++ 入門,所以請(qǐng)耐心完整地學(xué)習(xí)本教程。 若遇到任何問題,歡迎加入 QQ 頻道 “VS Code” 參與討論。
先決條件
若要成功完成本教程,必須執(zhí)行以下步驟:
- 通過 MSYS2 獲取最新版本的 UCRT64,它提供了 GCC,UCRT64 和其他有用的 C/C++ 工具和庫(kù)的最新本地版本。按照 MSYS2 官網(wǎng)中的 Installation 說明安裝 MSYS2(如果 installer 下載速度較慢或無法下載,可以在此下載;由于更新數(shù)據(jù)庫(kù),安裝 MSYS2 時(shí)間會(huì)較長(zhǎng))。
注:請(qǐng)閱讀原文,2023-10-07 之后僅在原文中進(jìn)行更新,敬請(qǐng)諒解。
-
安裝 UCRT64 工具鏈。當(dāng) MSYS2 已經(jīng)準(zhǔn)備就緒,UCRT64 環(huán)境的終端將啟動(dòng),依次鍵入,接受默認(rèn)值以安裝工具鏈組中的所有成員:
pacman -Suy pacman -S tar make pacman -S mingw-w64-ucrt-x86_64-toolchain pacman -Suy
-
使用以下步驟將 UCRT64 文件夾的路徑添加到 Windows 環(huán)境變量:
-
在 Windows 搜索欄中,鍵入 設(shè)置 以打開 Windows 設(shè)置。
-
搜索 編輯帳戶的環(huán)境變量。
-
在系統(tǒng)變量中選擇變量 Path,然后選擇 編輯。
-
選擇 新建 并將 UCRT64 目標(biāo)文件夾路徑添加到系統(tǒng)路徑。確切的路徑取決于您安裝的 UCRT64 安裝位置。如果您使用默認(rèn)路徑安裝 UCRT64,請(qǐng)將其添加到路徑: C:\msys64\ucrt64\bin。選擇 確定 以保存更新的路徑。
-
-
若要檢查 UCRT64 工具是否已正確安裝且可用,請(qǐng)打開新的終端并依次鍵入:
gcc --version g++ --version gdb --version
-
安裝 VS Code(運(yùn)行下載的安裝程序,選擇 我同意此協(xié)議 后一直選擇 下一步,在 選擇附加任務(wù) 頁面選擇所有選項(xiàng),最后選擇 安裝)。
提示:安裝程序會(huì)將 VS Code 添加到您的 PATH,因此您可以從終端鍵入 code . 以在該文件夾上打開 VS Code。安裝后,您需要重新啟動(dòng)終端才能使對(duì)環(huán)境變量的更改生效。
-
安裝必要擴(kuò)展:Chinese (Simplified) Language Pack for Visual Studio Code 和 C/C++。
創(chuàng)建 Hello World
在磁盤(可以是任意位置)中創(chuàng)建一個(gè)空文件夾,您可以在其中放置所有 C/C++ 代碼。在 VS Code 中打開該文件夾(可以右鍵單擊該文件夾,選擇 通過 Code 打開),該文件夾將成為您的工作區(qū)。通過選擇 是,我信任此作者信任文件夾并啟用所有功能 接受工作區(qū)信任對(duì)話框,因?yàn)檫@是您創(chuàng)建的文件夾。
在學(xué)習(xí)本教程時(shí),你將看到在工作區(qū)中的被 VS Code 創(chuàng)建的文件夾 .vscode 和其中的三個(gè)文件:
launch.json (調(diào)試器配置)
tasks.json (編譯配置)
c_cpp_properties.json (C/C++ 配置)
添加源代碼文件
在 資源管理器 標(biāo)題欄中,選擇 新建文件 按鈕并將文件命名為 helloworld.c 或者 helloworld.cpp。
添加 helloworld 源代碼
現(xiàn)在復(fù)制此源代碼粘貼到文件 helloworld.c:
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
或者復(fù)制此源代碼粘貼到文件 helloworld.cpp:
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
現(xiàn)在保存文件。
您還可以啟用自動(dòng)保存以自動(dòng)保存文件更改,方法可以參考后文 更多 中的 2。
使用最左側(cè)的活動(dòng)欄可以打開不同的視圖,例如 搜索、運(yùn)行和調(diào)試 和 擴(kuò)展 等。本教程稍后將查看 運(yùn)行和調(diào)試 視圖??梢栽?VS Code 用戶界面文檔中找到有關(guān)其他視圖的詳細(xì)信息。
注意:保存或打開 C/C++ 文件時(shí),你可能會(huì)看到來自 C/C++ 擴(kuò)展的有關(guān)預(yù)覽體驗(yàn)成員版本可用性的通知,該通知可用于測(cè)試新功能和修補(bǔ)程序。您可以通過選擇 清除所有通知 來忽略此通知。
使用 launch.json 自定義調(diào)試
選擇編輯器右上角的 設(shè)置 按鈕,您將看到各種預(yù)定義調(diào)試配置的下拉列表,選擇 C/C++: gcc.exe 生成和調(diào)試活動(dòng)文件 以生成和調(diào)試 helloworld.c 或者 C/C++: g++.exe 生成和調(diào)試活動(dòng)文件 以生成和調(diào)試 helloworld.cpp。
VS Code 會(huì)創(chuàng)建兩個(gè)文件 launch.json 和 tasks.json。
在文件 launch.json 中添加新配置,控制在開始調(diào)試后不打開內(nèi)部 調(diào)試控制臺(tái),而是停留在集成 終端,便于輸入和查看輸出。在 configurations 列表中添加以下內(nèi)容(例如在第 12、13 行之間插入):
"internalConsoleOptions": "neverOpen",
若要生成和調(diào)試 C 的源文件,將文件 tasks.json 中的第 10 行代碼,替換為以下內(nèi)容,可以根據(jù)需求僅注釋其中一行,否則無法編譯:
"${file}", // 僅編譯當(dāng)前打開的源文件
// "${fileDirname}\\*.c", // 編譯當(dāng)前打開的源文件所在文件夾下的所有源文件
若要生成和調(diào)試 C++ 的源文件,將文件 tasks.json 中的第 10 行代碼,替換為以下內(nèi)容,可以根據(jù)需求僅注釋其中一行,否則無法編譯:
"${file}", // 僅編譯當(dāng)前打開的源文件
// "${fileDirname}\\*.cpp", // 編譯當(dāng)前打開的源文件所在文件夾下的所有源文件
現(xiàn)在保存兩個(gè)文件。
運(yùn)行 helloworld
返回 helloworld.c 或者 helloworld.cpp,運(yùn)行的鍵盤快捷方式為 Ctrl+F5
。
編譯成功后,程序的輸出將顯示在集成 終端 中。
調(diào)試 helloworld
通過單擊編輯器左側(cè)邊緣來設(shè)置斷點(diǎn),調(diào)試的鍵盤快捷方式為 F5
。
探索調(diào)試器
在開始單步執(zhí)行代碼之前,讓我們花點(diǎn)時(shí)間注意用戶界面中的幾個(gè)更改:
集成 終端 顯示在源代碼編輯器的底部。
編輯器會(huì)突出顯示在啟動(dòng)調(diào)試器之前設(shè)置斷點(diǎn)的行。
左側(cè)的 運(yùn)行和調(diào)試 視圖顯示調(diào)試信息。
在代碼編輯器的頂部,將顯示調(diào)試控制面板。您可以通過托住左側(cè)的點(diǎn)在屏幕上移動(dòng)它。
單步執(zhí)行代碼
現(xiàn)在,你已準(zhǔn)備好開始單步執(zhí)行代碼。
具體操作步驟省略,相關(guān)鍵盤快捷方式可以參考 附。
最后您可以在集成 終端 中看到輸出,以及 GDB 輸出的一些其他診斷信息。
設(shè)置監(jiān)視
有時(shí),您可能希望在程序執(zhí)行時(shí)跟蹤變量的值。您可以通過在變量上設(shè)置監(jiān)視來執(zhí)行此操作。
在 監(jiān)視 窗口中,選擇加號(hào),然后在文本框中鍵入變量。
若要在斷點(diǎn)處暫停執(zhí)行時(shí)快速查看任何變量的值,可以使用鼠標(biāo)指針將鼠標(biāo)懸停在該變量上。
C/C++ 配置
如果要對(duì) C/C++ 擴(kuò)展名進(jìn)行更多控制,可以創(chuàng)建一個(gè)文件 c_cpp_properties.json,該文件將允許您更改設(shè)置,例如編譯器的路徑、包含路徑、C/C++標(biāo)準(zhǔn)等。在 .vscode 中創(chuàng)建 JSON 文件 c_cpp_properties.json(方法同 添加源代碼文件),內(nèi)容如下,其中的 compilerPath 的值為編譯器的路徑,同 tasks.json 中的 command 的值:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "C:/msys64/ucrt64/bin/gcc.exe",
"cStandard": "gnu23",
"cppStandard": "gnu++23",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
更多
-
推薦安裝的拓展:
-
Code Runner
-
Competitive Programming Helper (cph)
-
Error Lens
-
exe Runner
-
GitHub Copilot
-
GitHub Copilot Chat
-
GitHub Copilot Labs
-
Material Icon Theme
-
Todo Tree
每個(gè)拓展的功能、命令、設(shè)置等可以參考它們各自網(wǎng)頁中的 Overview,還有其他優(yōu)秀的拓展可以自行探索。
-
-
為了使 VS Code 更易于使用,可以進(jìn)行 VS Code 用戶設(shè)置。在 %AppData%\Code\User 中創(chuàng)建 JSON 文件 settings.json (可以先新建文本文檔并命名為 settings.json,然后通過 VS Code 打開),內(nèi)容如下(其中包含前文的自動(dòng)保存的設(shè)置,您還可以自行探索其他設(shè)置):
{ "debug.onTaskErrors": "showErrors", "editor.cursorSmoothCaretAnimation": "on", "editor.formatOnPaste": true, "editor.formatOnSave": true, "editor.formatOnType": true, "editor.minimap.enabled": false, "editor.mouseWheelZoom": true, "editor.smoothScrolling": true, "editor.stickyScroll.enabled": true, "editor.unicodeHighlight.allowedLocales": { "zh-hans": true, "zh-hant": true }, "editor.wordWrap": "on", "explorer.confirmDelete": false, "explorer.confirmDragAndDrop": false, "files.autoSave": "afterDelay", "files.autoGuessEncoding": true, "terminal.integrated.allowChords": false, "terminal.integrated.enableMultiLinePasteWarning": false, "terminal.integrated.smoothScrolling": true, "workbench.iconTheme": "material-icon-theme", "workbench.list.smoothScrolling": true, // Extensions "code-runner.runInTerminal": true, "code-runner.saveFileBeforeRun": true, "github.copilot.enable": { "*": true, "plaintext": true, "markdown": true, "scminput": true }, "github.copilot-labs.showBrushesLenses": true, "github.copilot-labs.showTestGenerationLenses": true }
-
您可以啟用設(shè)置同步功能,該功能可以讓您同步您的 VS Code 配置,例如設(shè)置、每個(gè)平臺(tái)的鍵盤快捷方式、拓展等,跨多臺(tái)計(jì)算機(jī)使用,以便您始終使用您喜歡的設(shè)置。
-
為了將每次編譯后產(chǎn)生的 exe 等類型的文件刪除,在工作區(qū)中創(chuàng)建 bat 文件 _del.bat,內(nèi)容如下,然后在資源管理器中右鍵選擇 _del.bat,選擇 Run Code (前提是已安裝拓展 Code Runner):
del *.exe /q /s del a.out /q /s del *.o /q /s del tempCodeRunnerFile.c /q /s
-
為了在運(yùn)行 VS Code 的同時(shí)打開作為工作區(qū)的文件夾,可以右鍵選擇其快捷方式,選擇 屬性,在 目標(biāo) 后添加工作區(qū)的路徑,如: “C:\Program Files\Microsoft VS Code\Code.exe” “C:\Code\C++”,選擇 確定。
-
源文件的路徑和計(jì)算機(jī)用戶名中不要包含中文,否則可能會(huì)出現(xiàn)由于編碼問題導(dǎo)致的編譯錯(cuò)誤。
-
若在按照本教程操作之前,您的計(jì)算機(jī)上已安裝了 VS Code,請(qǐng)您務(wù)必卸載 VS Code 和其所有的配置文件(文件夾包括 %AppData%\Code、%USERPROFILE%\.vscode),然后再按照本教程操作。
-
本教程是基于 Windows 的,Linux 用戶可以參考在 VS Code 中使用 Linux 上的 C++,macOS 用戶可以參考在 VS Code 中使用 Clang;另外,Windows 用戶也可以參考在 VS Code 中使用 C++ 和 WSL(需要安裝 WSL)和為 Microsoft C++ 配置 VS Code(需要安裝 Visual Studio)。
-
VS Code 還提供內(nèi)部版本 VS Code Insiders(本文圖片中的版本),可以安裝其來獲取每天的最新版本。
-
VS Code 還提供了 VS Code for the Web 功能,可以在瀏覽器中使用 VS Code,您可以自行探索。
-
最令人興奮的是 VS Code 中的 AI 工具,即 1 中提到的拓展 GitHub Copilot,它可以幫助您更快、更智能地編寫代碼。您可以在 VS Code 中使用 Copilot 擴(kuò)展來生成代碼、從它生成的代碼中學(xué)習(xí),甚至配置您的編輯器。
-
作為在全球范圍內(nèi)最受程序員歡迎的代碼編輯器,VS Code 具有許多優(yōu)秀的特點(diǎn),可以幫助您輕松編寫代碼,您可以自行探索,可以參考 VS Code 官方文檔。
-
本文的內(nèi)容僅限于 VS Code - C/C++ 的入門級(jí)教程,如果您想要更深入地了解 VS Code,也可以參考 VS Code 官方文檔。
-
由于本文的文字內(nèi)容在持續(xù)更新,本文的圖片和視頻可能與本文的文字內(nèi)容不一致,請(qǐng)以文字內(nèi)容為準(zhǔn),這很重要。
-
由于作者水平有限,本教程可能存在一些不足,歡迎讀者將發(fā)現(xiàn)的錯(cuò)誤或提出的意見與建議告知作者(在手機(jī)上點(diǎn)擊 QQ)。文章來源:http://www.zghlxwxcb.cn/news/detail-435213.html
附
文章來源地址http://www.zghlxwxcb.cn/news/detail-435213.html
到了這里,關(guān)于Visual Studio Code (VS Code) – C++ 入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!