1. 背景
VS Code隻是一個代碼編輯器,編譯運作c/c++程式需要自己配置編譯器。現不想使用MinGW的gcc或g++編譯程式,而電腦本身有VS,故希望使用VS自帶的cl.exe來進行編譯。用于測試的C++程式如下所示:
#include <iostream>
using namespace std;
int main()
{
cout << "11" << endl;
return 0;
}
2. cl.exe配置
方法1:單次配置
打開windows的開始菜單,輸入Native Tools Command Prompt,根據電腦版本選擇輕按兩下打開X86 Native Tools Command Prompt或者X64 Native Tools Command Prompt。也可輸入Developer Command Prompt,根據VS版本選擇Developer Command Prompt for VS 2017。

// 打開VS Code,記得将C:\Users\Administrator\Desktop\test換成自己程式所在的檔案夾
code C:\Users\Administrator\Desktop\test
在VS Code的中輸入cl,檢測環境配置是否正确。
若需要使用cl,每次都需通過該方法打開VS Code。直接通過VS Code圖示來打開,會出現錯誤。
更詳細的内容可以參考部落格:VS:指令行運作C/C++程式(無須任何配置)
方法2:全局配置
在系統變量中添加cl.exe的相關路徑。如此在所有的cmd或通過VS Code圖檔打開的終端都可用。注意:以下路徑需根據自己的VS路徑作相應修改。
//在Path中添加cl.exe所在檔案夾路徑。若未找到,直接VS的安裝目錄下搜尋cl.exe即可
C:\Program Files\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86;
//在系統變量中建立變量INCLUDE,添加cl.exe的包含目錄
C:\Program Files\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include;
C:\Program Files\Windows Kits\10\Include\10.0.17763.0\shared;
C:\Program Files\Windows Kits\10\Include\10.0.17763.0\ucrt;
C:\Program Files\Windows Kits\10\Include\10.0.17763.0\um;
C:\Program Files\Windows Kits\10\Include\10.0.17763.0\winrt;
//在系統變量中建立變量LIB,添加cl.exe的庫目錄
C:\Program Files\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x86;
C:\Program Files\Windows Kits\10\Lib\10.0.17763.0\um\x86;
C:\Program Files\Windows Kits\10\Lib\10.0.17763.0\ucrt\x86;
更詳細的内容可以參考部落格:VS:在windows上調用cl.exe編譯運作C/C++程式
3. VS Code配置
打開所需編譯的C++程式,點選F5,啟動調試。在彈出的選項中選擇C++ (Windows)和cl.exe - 生成和調試活動檔案。此時VSCode自動生成launch.json和tasks.json。
自動生成的launch.json:
{
// 使用 IntelliSense 了解相關屬性。
// 懸停以檢視現有屬性的描述。
// 欲了解更多資訊,請通路: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "cl.exe - 生成和調試活動檔案",
"type": "cppvsdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "cl.exe build active file"
}
]
}
自動生成的tasks.json:
{
"tasks": [
{
"type": "shell",
"label": "cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}"
]
}
],
"version": "2.0.0"
}
注意:
- launch.json中的preLaunchTask需與tasks.json中label一緻。
- 若使用全局配置,在選擇C++ (Windows)和cl.exe - 生成和調試活動檔案時,無法自動生成launch.json和tasks.json,并出現如下錯誤:
解決方法1:
通過X86 Native Tools Command Prompt或者X64 Native Tools Command Prompt以VS開發人員的權限打開VS Code。
解決方法2:
通過Developer Command Prompt for VS 2017以VS開發人員的權限打開VS Code。
解決方法3:
調試時,選擇C++ (Windows)和預設配置将上面的launch.json和tasks.json拷貝到.vscode檔案夾中。