為 Microsoft C++ 配置 VS Code
在本教程中,您將配置 Visual Studio Code 以在 Windows 上使用 Microsoft Visual C++ 編譯器和調(diào)試器。
配置完 VS Code 后,你將在 VS Code 中編譯和調(diào)試一個(gè)簡(jiǎn)單的 Hello World 程序。本教程不教您有關(guān) Microsoft C++ 工具集或 C++ 語(yǔ)言的詳細(xì)信息。對(duì)于這些主題,網(wǎng)上有很多很好的資源。
如果您有任何問(wèn)題,請(qǐng)隨時(shí)在VS Code 文檔存儲(chǔ)庫(kù)中為本教程提交問(wèn)題。
先決條件#
要成功完成本教程,您必須執(zhí)行以下操作:
-
安裝Visual Studio 代碼。
-
為 VS Code安裝C/C++ 擴(kuò)展。您可以通過(guò)在擴(kuò)展視圖 ( Ctrl+Shift+X?)中搜索“c++”來(lái)安裝 C/C++ 擴(kuò)展。
-
安裝 Microsoft Visual C++ (MSVC) 編譯器工具集。
如果您有最新版本的 Visual Studio,請(qǐng)從 Windows 開(kāi)始菜單中打開(kāi) Visual Studio 安裝程序并驗(yàn)證是否選中了 C++ 工作負(fù)載。如果未安裝,請(qǐng)選中該框并選擇安裝程序中的修改按鈕。
您還可以在沒(méi)有完整 Visual Studio IDE 安裝的情況下安裝具有 C++ 工作負(fù)載的桌面開(kāi)發(fā)。在 Visual Studio下載頁(yè)面中,向下滾動(dòng)直到在所有下載部分下看到Visual Studio 2022 工具,然后選擇Visual Studio 2022 構(gòu)建工具的下載。
這將啟動(dòng) Visual Studio 安裝程序,這將打開(kāi)一個(gè)對(duì)話框,顯示可用的 Visual Studio 構(gòu)建工具工作負(fù)載。檢查Desktop development with C++工作負(fù)載并選擇Install。
注意:只要您還擁有有效的 Visual Studio 許可證(Community、Pro 或 Enterprise),您就可以使用 Visual Studio Build Tools 中的 C++ 工具集和 Visual Studio Code 來(lái)編譯、構(gòu)建和驗(yàn)證任何 C++ 代碼庫(kù)。正在積極使用來(lái)開(kāi)發(fā) C++ 代碼庫(kù)。
檢查您的 Microsoft Visual C++ 安裝#
要從命令行或 VS Code 使用 MSVC,您必須從Visual Studio 的開(kāi)發(fā)人員命令提示符運(yùn)行。PowerShell、Bash 或 Windows 命令提示符等普通 shell 沒(méi)有設(shè)置必要的路徑環(huán)境變量。
要打開(kāi) VS 的開(kāi)發(fā)人員命令提示符,請(qǐng)開(kāi)始在 Windows 開(kāi)始菜單中輸入“開(kāi)發(fā)人員”,您應(yīng)該會(huì)看到它出現(xiàn)在建議列表中。確切的名稱取決于您安裝的 Visual Studio 或 Visual Studio 構(gòu)建工具的版本。選擇項(xiàng)目以打開(kāi)提示。
您可以通過(guò)鍵入“cl”來(lái)測(cè)試您是否已正確安裝了 C++ 編譯器,cl.exe
您應(yīng)該會(huì)看到包含版本和基本使用說(shuō)明的版權(quán)消息。
如果開(kāi)發(fā)人員命令提示符使用 BuildTools 位置作為起始目錄(您不想將項(xiàng)目放在那里),請(qǐng)C:\users\{your username}\
在開(kāi)始創(chuàng)建新項(xiàng)目之前導(dǎo)航到您的用戶文件夾 ( )。
注意:如果由于某種原因您無(wú)法從Developer Command Prompt運(yùn)行 VS Code,您可以在Run VS Code outside a Developer Command Prompt中找到使用 VS Code 構(gòu)建 C++ 項(xiàng)目的解決方法。
創(chuàng)建你好世界#
在開(kāi)發(fā)人員命令提示符中,創(chuàng)建一個(gè)名為“projects”的空文件夾,您可以在其中存儲(chǔ)所有 VS Code 項(xiàng)目,然后創(chuàng)建一個(gè)名為“helloworld”的子文件夾,導(dǎo)航到該文件夾??,然后code
在該文件夾 (?.
) 中輸入以下命令:
<span style="color:#333333"><span style="background-color:#ffffff"><code><span style="color:#000000">mkdir projects</span>
<span style="color:#000000">cd projects</span>
<span style="color:#000000">mkdir helloworld</span>
<span style="color:#000000">cd helloworld</span>
<span style="color:#000000">code .</span></code></span></span>
代碼 ?!?命令在當(dāng)前工作文件夾中打開(kāi) VS Code,該文件夾成為您的“工作區(qū)”。在學(xué)習(xí)本教程時(shí),您將看到.vscode
在工作區(qū)的一個(gè)文件夾中創(chuàng)建了三個(gè)文件:
-
tasks.json
(構(gòu)建說(shuō)明) -
launch.json
(調(diào)試器設(shè)置) -
c_cpp_properties.json
(編譯器路徑和 IntelliSense 設(shè)置)
添加源代碼文件#
在文件資源管理器標(biāo)題欄中,選擇新建文件按鈕并將文件命名為helloworld.cpp
。
添加hello world源代碼#
現(xiàn)在粘貼此源代碼:
<span style="color:#333333"><span style="background-color:#ffffff"><code><span style="color:#0000ff">#include </span><span style="color:#a31515"><iostream></span>
<span style="color:#0000ff">#include </span><span style="color:#a31515"><vector></span>
<span style="color:#0000ff">#include </span><span style="color:#a31515"><string></span>
<span style="color:#0000ff">using</span> <span style="color:#0000ff">namespace</span> <span style="color:#267f99">std</span><span style="color:#000000">;</span>
<span style="color:#0000ff">int</span> <span style="color:#795e26">main</span><span style="color:#000000">()</span>
<span style="color:#000000">{</span>
<span style="color:#000000"> vector<string> msg {</span><span style="color:#a31515">"Hello"</span><span style="color:#000000">, </span><span style="color:#a31515">"C++"</span><span style="color:#000000">, </span><span style="color:#a31515">"World"</span><span style="color:#000000">, </span><span style="color:#a31515">"from"</span><span style="color:#000000">, </span><span style="color:#a31515">"VS Code"</span><span style="color:#000000">, </span><span style="color:#a31515">"and the C++ extension!"</span><span style="color:#000000">};</span>
<span style="color:#0000ff">for</span><span style="color:#000000"> (</span><span style="color:#0000ff">const</span><span style="color:#000000"> string& word : msg)</span>
<span style="color:#000000"> {</span>
<span style="color:#000000"> cout << word << </span><span style="color:#a31515">" "</span><span style="color:#000000">;</span>
<span style="color:#000000"> }</span>
<span style="color:#000000"> cout << endl;</span>
<span style="color:#000000">}</span></code></span></span>
現(xiàn)在按Ctrl+S保存文件。請(qǐng)注意您剛剛添加的文件是如何出現(xiàn)在VS Code 側(cè)邊欄中的文件資源管理器視圖 (?Ctrl+Shift+E ) 中的:
您還可以通過(guò)選中主文件菜單中的自動(dòng)保存來(lái)啟用自動(dòng)保存以自動(dòng)保存文件更改。
最左側(cè)的活動(dòng)欄讓您可以打開(kāi)不同的視圖,例如搜索、源代碼管理和運(yùn)行。您將在本教程的后面部分查看運(yùn)行視圖。您可以在 VS Code用戶界面文檔中找到有關(guān)其他視圖的更多信息。
注意:當(dāng)您保存或打開(kāi) C++ 文件時(shí),您可能會(huì)看到來(lái)自 C/C++ 擴(kuò)展的通知,告知您有 Insiders 版本的可用性,它允許您測(cè)試新功能和修復(fù)。
X
您可以通過(guò)選擇(清除通知)忽略此通知。
探索 IntelliSense?#
在您的新helloworld.cpp
文件中,將鼠標(biāo)懸停在vector
或string
查看類型信息。聲明msg
變量后,開(kāi)始鍵入msg.
,就像調(diào)用成員函數(shù)時(shí)一樣。您應(yīng)該立即看到一個(gè)顯示所有成員函數(shù)的完成列表,以及一個(gè)顯示msg
對(duì)象類型信息的窗口:
可以按Tab鍵插入選中的成員;然后,當(dāng)您添加左括號(hào)時(shí),您將看到有關(guān)該函數(shù)所需的任何參數(shù)的信息。
構(gòu)建 helloworld.cpp?#
接下來(lái),您將創(chuàng)建一個(gè)tasks.json
文件來(lái)告訴 VS Code 如何構(gòu)建(編譯)程序。此任務(wù)將調(diào)用 Microsoft C++ 編譯器以基于源代碼創(chuàng)建可執(zhí)行文件。
從主菜單中,選擇終端>配置默認(rèn)構(gòu)建任務(wù)。在下拉列表中,將顯示一個(gè)任務(wù)下拉列表,其中列出了 C++ 編譯器的各種預(yù)定義構(gòu)建任務(wù)。選擇cl.exe build active file,它將構(gòu)建當(dāng)前在編輯器中顯示(活動(dòng))的文件。
這將在文件夾中創(chuàng)建一個(gè)tasks.json
文件.vscode
并在編輯器中打開(kāi)它。
您的新tasks.json
文件應(yīng)該類似于下面的 JSON:
<span style="color:#333333"><span style="background-color:#ffffff"><code><span style="color:#000000">{</span>
<span style="color:#0451a5">"version"</span><span style="color:#000000">: </span><span style="color:#a31515">"2.0.0"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"tasks"</span><span style="color:#000000">: [</span>
<span style="color:#000000"> {</span>
<span style="color:#0451a5">"type"</span><span style="color:#000000">: </span><span style="color:#a31515">"shell"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"label"</span><span style="color:#000000">: </span><span style="color:#a31515">"cl.exe build active file"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"command"</span><span style="color:#000000">: </span><span style="color:#a31515">"cl.exe"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"args"</span><span style="color:#000000">: [</span>
<span style="color:#a31515">"/Zi"</span><span style="color:#000000">,</span>
<span style="color:#a31515">"/EHsc"</span><span style="color:#000000">,</span>
<span style="color:#a31515">"/Fe:"</span><span style="color:#000000">,</span>
<span style="color:#a31515">"${fileDirname}</span><span style="color:#ee0000">\\</span><span style="color:#a31515">${fileBasenameNoExtension}.exe"</span><span style="color:#000000">,</span>
<span style="color:#a31515">"${file}"</span>
<span style="color:#000000"> ],</span>
<span style="color:#0451a5">"problemMatcher"</span><span style="color:#000000">: [</span><span style="color:#a31515">"$msCompile"</span><span style="color:#000000">],</span>
<span style="color:#0451a5">"group"</span><span style="color:#000000">: {</span>
<span style="color:#0451a5">"kind"</span><span style="color:#000000">: </span><span style="color:#a31515">"build"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"isDefault"</span><span style="color:#000000">: </span><span style="color:#0000ff">true</span>
<span style="color:#000000"> }</span>
<span style="color:#000000"> }</span>
<span style="color:#000000"> ]</span>
<span style="color:#000000">}</span></code></span></span>
command
設(shè)置指定要運(yùn)行的程序;在這種情況下是“cl.exe”。該args
數(shù)組指定將傳遞給 cl.exe 的命令行參數(shù)。這些參數(shù)必須按照編譯器預(yù)期的順序指定。此任務(wù)告訴 C++ 編譯器獲取活動(dòng)${file}
文件/Fe:
(例子。${fileDirname}
.exe
${fileBasenameNoExtension}.exe
helloworld.exe
注意:您可以在變量參考中了解有關(guān)
tasks.json
變量的更多信息。
該label
值是您將在任務(wù)列表中看到的;你可以隨意命名它。
該problemMatcher
值選擇輸出解析器以用于在編譯器輸出中查找錯(cuò)誤和警告。對(duì)于 cl.exe,如果您使用$msCompile
問(wèn)題匹配器,您將獲得最佳結(jié)果。
對(duì)象中的"isDefault": true
值指定當(dāng)您按Ctrl+Shift+Bgroup
時(shí)將運(yùn)行此任務(wù)。此屬性僅為方便起見(jiàn);如果您將其設(shè)置為 false,您仍然可以從 Terminal 菜單中使用Tasks: Run Build Task運(yùn)行它。
運(yùn)行構(gòu)建#
-
回到
helloworld.cpp
.?您的任務(wù)構(gòu)建活動(dòng)文件并且您想要構(gòu)建helloworld.cpp
. -
要運(yùn)行 中定義的構(gòu)建任務(wù)
tasks.json
,請(qǐng)按Ctrl+Shift+B或從終端主菜單中選擇任務(wù):運(yùn)行構(gòu)建任務(wù)。 -
當(dāng)任務(wù)開(kāi)始時(shí),您應(yīng)該會(huì)看到集成終端面板出現(xiàn)在源代碼編輯器下方。任務(wù)完成后,終端會(huì)顯示編譯器的輸出,指示構(gòu)建是成功還是失敗。對(duì)于成功的 C++ 構(gòu)建,輸出如下所示:
如果由于找不到cl.exe
或缺少包含路徑而導(dǎo)致構(gòu)建失敗,請(qǐng)確保您已從Visual Studio 的開(kāi)發(fā)人員命令提示符啟動(dòng) VS Code 。
-
使用+按鈕創(chuàng)建一個(gè)新終端,您將擁有一個(gè)新終端(運(yùn)行 PowerShell),該
helloworld
文件夾作為工作目錄。運(yùn)行ls
,您現(xiàn)在應(yīng)該會(huì)看到可執(zhí)行文件helloworld.exe
以及各種中間 C++ 輸出和調(diào)試文件 (?helloworld.obj
,?helloworld.pdb
)。 -
您可以
helloworld
通過(guò)鍵入在終端中運(yùn)行.\helloworld.exe
。
注意:您最初可能需要按幾次Enter才能在終端中看到 PowerShell 提示符。此問(wèn)題應(yīng)在 Windows 的未來(lái)版本中得到修復(fù)。
修改tasks.json?#
您可以tasks.json
使用類似的參數(shù)"${workspaceFolder}\\*.cpp"
而不是${file}
.?這將構(gòu)建.cpp
您當(dāng)前文件夾中的所有文件。您還可以通過(guò)替換"${fileDirname}\\${fileBasenameNoExtension}.exe"
為硬編碼文件名(例如"${workspaceFolder}\\myProgram.exe"
)來(lái)修改輸出文件名。
調(diào)試 helloworld.cpp?#
接下來(lái),您將創(chuàng)建一個(gè)launch.json
文件來(lái)配置 VS Code,以便在您按F5調(diào)試程序時(shí)啟動(dòng) Microsoft C++ 調(diào)試器。從主菜單中,選擇Run?>?Add Configuration...,然后選擇C++ (Windows)。
然后,您將看到各種預(yù)定義調(diào)試配置的下拉列表。選擇cl.exe 構(gòu)建和調(diào)試活動(dòng)文件。
VS Code 創(chuàng)建一個(gè)launch.json
文件,在編輯器中打開(kāi)它,然后構(gòu)建并運(yùn)行“helloworld”。
<span style="color:#333333"><span style="background-color:#ffffff"><code><span style="color:#000000">{</span>
<span style="color:#0451a5">"version"</span><span style="color:#000000">: </span><span style="color:#a31515">"0.2.0"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"configurations"</span><span style="color:#000000">: [</span>
<span style="color:#000000"> {</span>
<span style="color:#0451a5">"name"</span><span style="color:#000000">: </span><span style="color:#a31515">"cl.exe build and debug active file"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"type"</span><span style="color:#000000">: </span><span style="color:#a31515">"cppvsdbg"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"request"</span><span style="color:#000000">: </span><span style="color:#a31515">"launch"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"program"</span><span style="color:#000000">: </span><span style="color:#a31515">"${fileDirname}</span><span style="color:#ee0000">\\</span><span style="color:#a31515">${fileBasenameNoExtension}.exe"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"args"</span><span style="color:#000000">: [],</span>
<span style="color:#0451a5">"stopAtEntry"</span><span style="color:#000000">: </span><span style="color:#0000ff">false</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"cwd"</span><span style="color:#000000">: </span><span style="color:#a31515">"${workspaceFolder}"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"environment"</span><span style="color:#000000">: [],</span>
<span style="color:#0451a5">"externalConsole"</span><span style="color:#000000">: </span><span style="color:#0000ff">false</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"preLaunchTask"</span><span style="color:#000000">: </span><span style="color:#a31515">"cl.exe build active file"</span>
<span style="color:#000000"> }</span>
<span style="color:#000000"> ]</span>
<span style="color:#000000">}</span></code></span></span>
該program
設(shè)置指定要調(diào)試的程序。在這里,它被設(shè)置為活動(dòng)文件夾${fileDirname}
和活動(dòng)文件名,.exe
擴(kuò)展名${fileBasenameNoExtension}.exe
是helloworld.cpp
活動(dòng)文件helloworld.exe
。
默認(rèn)情況下,C++ 擴(kuò)展不會(huì)向您的源代碼添加任何斷點(diǎn),并且該stopAtEntry
值設(shè)置為false
.?stopAtEntry
將值更改為true
以使調(diào)試器main
在您開(kāi)始調(diào)試時(shí)停止該方法。
開(kāi)始調(diào)試會(huì)話#
- 返回
helloworld.cpp
,使其成為活動(dòng)文件。 - 按F5或從主菜單中選擇Run > Start Debugging。在開(kāi)始逐步瀏覽源代碼之前,讓我們花點(diǎn)時(shí)間注意用戶界面的一些變化:
-
集成終端出現(xiàn)在源代碼編輯器的底部。在“調(diào)試輸出”選項(xiàng)卡中,您會(huì)看到指示調(diào)試器已啟動(dòng)并正在運(yùn)行的輸出。
-
編輯器突出顯示方法中的第一條語(yǔ)句
main
。這是 C++ 擴(kuò)展自動(dòng)為您設(shè)置的斷點(diǎn): -
左側(cè)的運(yùn)行視圖顯示調(diào)試信息。您將在本教程后面看到一個(gè)示例。
-
在代碼編輯器的頂部,會(huì)出現(xiàn)一個(gè)調(diào)試控制面板。您可以通過(guò)抓住左側(cè)的點(diǎn)來(lái)在屏幕上移動(dòng)它。
單步執(zhí)行代碼#
現(xiàn)在您已準(zhǔn)備好開(kāi)始單步執(zhí)行代碼。
-
選擇調(diào)試控制面板中的Step over圖標(biāo),直到
for (const string& word : msg)
語(yǔ)句突出顯示。Step Over命令跳過(guò)創(chuàng)建和初始化變量時(shí)調(diào)用的
vector
和string
類中的所有內(nèi)部函數(shù)調(diào)用。msg
注意左側(cè)變量窗口的變化。在這種情況下,錯(cuò)誤是意料之中的,因?yàn)楸M管循環(huán)的變量名現(xiàn)在對(duì)調(diào)試器可見(jiàn),但語(yǔ)句尚未執(zhí)行,因此此時(shí)沒(méi)有可讀取的內(nèi)容。但是,的內(nèi)容msg
是可見(jiàn)的,因?yàn)樵撜Z(yǔ)句已完成。 -
再次按Step over前進(jìn)到該程序中的下一條語(yǔ)句(跳過(guò)所有為初始化循環(huán)而執(zhí)行的內(nèi)部代碼)。現(xiàn)在,“變量”窗口顯示有關(guān)循環(huán)變量的信息。
-
再次按Step over以執(zhí)行
cout
語(yǔ)句。注意從 2019 年 3 月版的擴(kuò)展程序開(kāi)始,在循環(huán)完成之前不會(huì)顯示任何輸出。 -
如果您愿意,可以一直按Step over,直到向量中的所有單詞都打印到控制臺(tái)。但是,如果您好奇,請(qǐng)嘗試按下Step Into按鈕來(lái)逐步瀏覽 C++ 標(biāo)準(zhǔn)庫(kù)中的源代碼!
要返回您自己的代碼,一種方法是按住Step over。另一種方法是通過(guò)切換到
helloworld.cpp
代碼編輯器中的選項(xiàng)卡在代碼中設(shè)置斷點(diǎn),將插入點(diǎn)放在cout
循環(huán)內(nèi)語(yǔ)句的某個(gè)位置,然后按F9。左側(cè)的裝訂線中出現(xiàn)一個(gè)紅點(diǎn),表示該行已設(shè)置斷點(diǎn)。然后按F5從標(biāo)準(zhǔn)庫(kù)頭中的當(dāng)前行開(kāi)始執(zhí)行。執(zhí)行將中斷
cout
。如果您愿意,可以再次按F9來(lái)關(guān)閉斷點(diǎn)。
設(shè)置手表#
有時(shí)您可能希望在程序執(zhí)行時(shí)跟蹤變量的值。您可以通過(guò)在變量上設(shè)置監(jiān)視來(lái)做到這一點(diǎn)。
-
將插入點(diǎn)放在循環(huán)內(nèi)。在Watch窗口中,選擇加號(hào)并在文本框中輸入
word
,這是循環(huán)變量的名稱?,F(xiàn)在,在您逐步完成循環(huán)時(shí)查看 Watch 窗口。 -
通過(guò)在循環(huán)之前添加以下語(yǔ)句來(lái)添加另一個(gè)手表:
int i = 0;
.?然后,在循環(huán)內(nèi),添加以下語(yǔ)句:++i;
.?i
現(xiàn)在像上一步一樣添加一個(gè)手表。 -
要在斷點(diǎn)處暫停執(zhí)行時(shí)快速查看任何變量的值,您可以將鼠標(biāo)指針懸停在該變量上。
C/C++ 配置#
如果您想更好地控制 C/C++ 擴(kuò)展,您可以創(chuàng)建一個(gè)c_cpp_properties.json
文件,該文件將允許您更改設(shè)置,例如編譯器的路徑、包含路徑、C++ 標(biāo)準(zhǔn)(默認(rèn)為 C++17)等等。
您可以通過(guò)運(yùn)行命令C/C++: Edit Configurations (UI)?from the Command Palette (?Ctrl+Shift+P?) 來(lái)查看 C/C++ 配置 UI。
這將打開(kāi)C/C++ 配置頁(yè)面。當(dāng)您在此處進(jìn)行更改時(shí),VS Code 會(huì)將它們寫入文件夾中調(diào)用c_cpp_properties.json
的.vscode
文件中。
Visual Studio Code 將這些設(shè)置放在.vscode\c_cpp_properties.json
.?如果您直接打開(kāi)該文件,它應(yīng)該如下所示:
<span style="color:#333333"><span style="background-color:#ffffff"><code><span style="color:#000000">{</span>
<span style="color:#0451a5">"configurations"</span><span style="color:#000000">: [</span>
<span style="color:#000000"> {</span>
<span style="color:#0451a5">"name"</span><span style="color:#000000">: </span><span style="color:#a31515">"Win32"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"includePath"</span><span style="color:#000000">: [</span><span style="color:#a31515">"${workspaceFolder}/**"</span><span style="color:#000000">],</span>
<span style="color:#0451a5">"defines"</span><span style="color:#000000">: [</span><span style="color:#a31515">"_DEBUG"</span><span style="color:#000000">, </span><span style="color:#a31515">"UNICODE"</span><span style="color:#000000">, </span><span style="color:#a31515">"_UNICODE"</span><span style="color:#000000">],</span>
<span style="color:#0451a5">"windowsSdkVersion"</span><span style="color:#000000">: </span><span style="color:#a31515">"10.0.18362.0"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"compilerPath"</span><span style="color:#000000">: </span><span style="color:#a31515">"C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/cl.exe"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"cStandard"</span><span style="color:#000000">: </span><span style="color:#a31515">"c11"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"cppStandard"</span><span style="color:#000000">: </span><span style="color:#a31515">"c++17"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"intelliSenseMode"</span><span style="color:#000000">: </span><span style="color:#a31515">"msvc-x64"</span>
<span style="color:#000000"> }</span>
<span style="color:#000000"> ],</span>
<span style="color:#0451a5">"version"</span><span style="color:#000000">: </span><span style="color:#098658">4</span>
<span style="color:#000000">}</span></code></span></span>
如果您的程序包含不在工作區(qū)或標(biāo)準(zhǔn)庫(kù)路徑中的頭文件,您只需添加到包含路徑數(shù)組設(shè)置。
編譯器路徑#
該compilerPath
設(shè)置是配置中的一項(xiàng)重要設(shè)置。該擴(kuò)展使用它來(lái)推斷 C++ 標(biāo)準(zhǔn)庫(kù)頭文件的路徑。當(dāng)擴(kuò)展知道在哪里可以找到這些文件時(shí),它可以提供有用的功能,如智能完成和轉(zhuǎn)到定義導(dǎo)航。
C/C++ 擴(kuò)展嘗試compilerPath
根據(jù)它在您的系統(tǒng)上找到的內(nèi)容填充默認(rèn)編譯器位置。該擴(kuò)展在幾個(gè)常見(jiàn)的編譯器位置中查找。
compilerPath
搜索順序?yàn)椋?/span>
- 首先檢查 Microsoft Visual C++ compilerOpe
- 然后在 Windows Subsystem for Linux (WSL) 上尋找 g++
- 然后為 Mingw-w64 使用 g++。
如果您安裝了 g++ 或 WSL,您可能需要進(jìn)行更改compilerPath
以匹配您項(xiàng)目的首選編譯器。對(duì)于 Microsoft C++,路徑應(yīng)如下所示,具體取決于您安裝的特定版本:“C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin /Hostx64/x64/cl.exe”。
重用你的 C++ 配置#
VS Code 現(xiàn)在配置為使用 Microsoft C++ 編譯器。該配置適用于當(dāng)前工作空間。要重用配置,只需將 JSON 文件復(fù)制到.vscode
新項(xiàng)目文件夾(工作區(qū))中的文件夾,并根據(jù)需要更改源文件和可執(zhí)行文件的名稱。
在開(kāi)發(fā)人員命令提示符之外運(yùn)行 VS Code?#
在某些情況下,無(wú)法從Visual Studio 的開(kāi)發(fā)人員命令提示符運(yùn)行 VS Code (例如,在通過(guò) SSH 的遠(yuǎn)程開(kāi)發(fā)方案中)。在這種情況下,您可以在構(gòu)建期間使用以下配置自動(dòng)初始化Visual Studio 的開(kāi)發(fā)人員命令提示符:tasks.json
<span style="color:#333333"><span style="background-color:#ffffff"><code><span style="color:#000000">{</span>
<span style="color:#0451a5">"version"</span><span style="color:#000000">: </span><span style="color:#a31515">"2.0.0"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"windows"</span><span style="color:#000000">: {</span>
<span style="color:#0451a5">"options"</span><span style="color:#000000">: {</span>
<span style="color:#0451a5">"shell"</span><span style="color:#000000">: {</span>
<span style="color:#0451a5">"executable"</span><span style="color:#000000">: </span><span style="color:#a31515">"cmd.exe"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"args"</span><span style="color:#000000">: [</span>
<span style="color:#a31515">"/C"</span><span style="color:#000000">,</span>
<span style="color:#008000">// The path to VsDevCmd.bat depends on the version of Visual Studio you have installed.</span>
<span style="color:#a31515">"</span><span style="color:#ee0000">\"</span><span style="color:#a31515">C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/Tools/VsDevCmd.bat</span><span style="color:#ee0000">\"</span><span style="color:#a31515">"</span><span style="color:#000000">,</span>
<span style="color:#a31515">"&&"</span>
<span style="color:#000000"> ]</span>
<span style="color:#000000"> }</span>
<span style="color:#000000"> }</span>
<span style="color:#000000"> },</span>
<span style="color:#0451a5">"tasks"</span><span style="color:#000000">: [</span>
<span style="color:#000000"> {</span>
<span style="color:#0451a5">"type"</span><span style="color:#000000">: </span><span style="color:#a31515">"shell"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"label"</span><span style="color:#000000">: </span><span style="color:#a31515">"cl.exe build active file"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"command"</span><span style="color:#000000">: </span><span style="color:#a31515">"cl.exe"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"args"</span><span style="color:#000000">: [</span>
<span style="color:#a31515">"/Zi"</span><span style="color:#000000">,</span>
<span style="color:#a31515">"/EHsc"</span><span style="color:#000000">,</span>
<span style="color:#a31515">"/Fe:"</span><span style="color:#000000">,</span>
<span style="color:#a31515">"${fileDirname}</span><span style="color:#ee0000">\\</span><span style="color:#a31515">${fileBasenameNoExtension}.exe"</span><span style="color:#000000">,</span>
<span style="color:#a31515">"${file}"</span>
<span style="color:#000000"> ],</span>
<span style="color:#0451a5">"problemMatcher"</span><span style="color:#000000">: [</span><span style="color:#a31515">"$msCompile"</span><span style="color:#000000">],</span>
<span style="color:#0451a5">"group"</span><span style="color:#000000">: {</span>
<span style="color:#0451a5">"kind"</span><span style="color:#000000">: </span><span style="color:#a31515">"build"</span><span style="color:#000000">,</span>
<span style="color:#0451a5">"isDefault"</span><span style="color:#000000">: </span><span style="color:#0000ff">true</span>
<span style="color:#000000"> }</span>
<span style="color:#000000"> }</span>
<span style="color:#000000"> ]</span>
<span style="color:#000000">}</span></code></span></span>
注意:路徑
VsDevCmd.bat
可能會(huì)因 Visual Studio 版本或安裝路徑而異。您可以VsDevCmd.bat
通過(guò)打開(kāi)命令提示符并運(yùn)行來(lái)找到路徑dir "\VsDevCmd*" /s
。
故障排除#
無(wú)法識(shí)別術(shù)語(yǔ)“cl.exe”?#
如果您看到錯(cuò)誤“術(shù)語(yǔ) 'cl.exe' 未被識(shí)別為 cmdlet、函數(shù)、腳本文件或可運(yùn)行程序的名稱?!?,這通常意味著您在Visual Developer 命令提示符之外運(yùn)行 VS Code?Studio和 VS Code 不知道cl.exe
編譯器的路徑。
VS Code 必須從 Visual Studio 的 Developer Command Prompt 啟動(dòng),或者必須將任務(wù)配置為在 Developer Command Prompt 之外運(yùn)行。
您始終可以通過(guò)打開(kāi)一個(gè)新終端 (?Ctrl+Shift+`?) 并鍵入“cl”來(lái)驗(yàn)證您是否在開(kāi)發(fā)人員命令提示符的上下文中運(yùn)行 VS Code,以驗(yàn)證cl.exe
VS Code 是否可用。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-497029.html
致命錯(cuò)誤 C1034: assert.h: no include path set?#
在這種情況下,cl.exe
VS Code 可以通過(guò)PATH
環(huán)境變量使用,但 VS Code 仍然需要從Visual Studio 的 Developer Command Prompt啟動(dòng),或者配置為在 Developer Command Prompt 之外運(yùn)行。否則,cl.exe
無(wú)法訪問(wèn)重要的環(huán)境變量,例如INCLUDE
.文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-497029.html
下一步#
到了這里,關(guān)于為 Microsoft C++ 配置 VS Code在本教程中,您將配置 Visual Studio Code 以在 Windows 上使用 Microsoft Visual C++ 編譯器和調(diào)試器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!