天天看点

VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行

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:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行
// 打开VS Code,记得将C:\Users\Administrator\Desktop\test换成自己程序所在的文件夹
code C:\Users\Administrator\Desktop\test
           
VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行

  在VS Code的中输入cl,检测环境配置是否正确。

VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行

  若需要使用cl,每次都需通过该方法打开VS Code。直接通过VS Code图标来打开,会出现错误。

VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行

  更详细的内容可以参考博客:VS:命令行运行C/C++程序(无须任何配置)

方法2:全局配置

  在系统变量中添加cl.exe的相关路径。如此在所有的cmd或通过VS Code图片打开的终端都可用。注意:以下路径需根据自己的VS路径作相应修改。

VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行
//在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。

VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行
VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行
VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行

自动生成的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"
}
           

注意:

  1. launch.json中的preLaunchTask需与tasks.json中label一致。
  2. 若使用全局配置,在选择C++ (Windows)和cl.exe - 生成和调试活动文件时,无法自动生成launch.json和tasks.json,并出现如下错误:
VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行

解决方法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文件夹中。

VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行
VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行

4. VS Code运行

VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行
VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行
VS Code:使用VS的cl.exe编译运行C/C++程序1. 背景2. cl.exe配置3. VS Code配置4. VS Code运行

继续阅读