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 。
// 打开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\\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86;//在系统变量中新建变量INCLUDE,添加cl.exe的包含目录C:\Program Files\Microsoft Visual Studio\\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\\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 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: /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 以VS开发人员的权限打开VS Code。
解决方法3:
调试时,选择C++ (Windows)和默认配置将上面的launch.json和tasks.json拷贝到.vscode文件夹中。