原文发表于 2026-01-12;修订于 2026-10-02。

这篇博客记录了如何在 Windows 上为 VS Code 配置 MSVC,内容包括安装所需工具、设置编译任务,以及运行和调试 C++ 程序。希望能给刚接触 C++、想用 VS Code 编写代码的朋友提供一份可以照着操作的参考。

本文以 Visual Studio Community 2022 和单个 C++ 源文件为例,从找到开发环境脚本到编写配置文件,逐步说明整个过程。使用其他版本或安装目录时,需要按实际情况调整路径。

步骤1 安装所需工具

先安装 Visual Studio Code,并在扩展页面安装微软发布的 C/C++ 扩展(扩展 ID:ms-vscode.cpptools)。

Visual Studio 下载页面

下载后,在 Visual Studio Installer 中勾选 “使用 C++ 的桌面开发” 工作负载,并确认包含 MSVC 编译工具和 Windows SDK。如果已经安装了 Visual Studio,可以在安装器中点击“修改”补齐这些组件。仅安装 Visual Studio 本身不一定包含 C++ 编译器。也可以使用 Visual Studio Build Tools 安装这些组件,其脚本路径需要按实际安装位置修改。

步骤2 找到Developer Command Prompt for VS 20xx

  • 直接在开始菜单搜索Developer Command Prompt for VS,点击打开文件位置,右击文件,点击属性

开发人员命令提示符的快捷方式

  • 找到目标(T),记录/k后面指向 VsDevCmd.bat 的完整路径。如果后面还有参数,不要把它们当作路径的一部分。

快捷方式中的 VsDevCmd.bat 路径

我这里是Visual Studio Community 2022的,我的路径为 C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat 不同版本、安装类型和自定义安装目录的路径可能不同,以上只是示例。

也可以先打开这个开发人员命令提示符,输入 cl。正常情况下会显示 MSVC 的版本和用法;如果提示找不到命令,先检查步骤1中的 C++ 组件。

步骤3 tasks.json

  • 在 VS Code 中通过“文件 → 打开文件夹”打开代码所在的项目文件夹,再在该文件夹中找到 .vscode\tasks.json(如果没有就新建)。

这个任务会在编译前调用 VsDevCmd.bat 初始化当前任务的开发环境,因此可以从普通方式启动的 VS Code 中编译。它不会自动改变其他终端的环境。

项目中的 tasks.json 文件

粘贴以下内容,注意替换步骤2的路径


{
    "windows":{
        "options": {
            "shell": {
                "executable": "cmd.exe",
                "args": [
                    "/C",
                    //这里VsDevCmd.bat的路径换成上面步骤2得到的路径
                    "\"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\Tools\\VsDevCmd.bat\"",
                    "&&"
                ]
            }
        }
    },
    "tasks": [
        {
            "type": "shell",
            "label": "C/C++: cl.exe 生成活动文件",
            "command": "cl.exe",
            "args": [
                "/std:c++20",
                "/Zi",
                "/EHsc",
                "/nologo",
                "/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
                "${file}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$msCompile"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

这里的 tasks.json 支持注释,属于 JSONC。/std:c++20 选择 C++20,/Zi 生成调试信息,/EHsc 设置 C++ 异常处理,/nologo 隐藏编译器横幅,/Fe 指定输出程序的位置。${file} 表示当前活动文件,所以这个任务只编译当前这一个源文件,不会自动编译项目内的其他 .cpp 文件。

如果源码保存为 UTF-8,可以在 args 中增加 "/utf-8",让 MSVC 按 UTF-8 处理源文件及字符串字面量;这不等于自动设置终端的显示编码。

步骤4 编译并调试

先保存文件,并确保当前编辑器中打开的是要编译的 .cpp 文件。可以先按 Ctrl+Shift+B 验证编译是否成功,再进行调试。

  • 打开代码文件,按下F5调试,选择C++(Windows)

选择 Windows C++ 调试器

选择C/C++:cl.exe 构建和调试活动文件

选择 cl.exe 构建和调试活动文件

某些版本的 C/C++ 扩展会提示应用开发人员环境,出现时可以按提示选择安装了 C++ 组件的 Visual Studio。界面和按钮名称可能随扩展版本变化,不是所有环境都会出现这个窗口。

扩展提示应用开发人员环境

运行成功

示例程序的运行结果

可选:明确指定调试配置

扩展可以动态生成调试配置,因此 launch.json 并非始终必需。如果上述菜单没有出现,或者希望固定 F5 的行为,可以在 .vscode\launch.json 中写入以下内容:


{
  "version": "0.2.0",
  "configurations": [
      {
          "name": "MSVC 调试活动文件",
          "type": "cppvsdbg",
          "request": "launch",
          "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
          "args": [],
          "stopAtEntry": false,
          "cwd": "${fileDirname}",
          "environment": [],
          "externalConsole": false,
          "preLaunchTask": "C/C++: cl.exe 生成活动文件"
      }
  ]
}

preLaunchTask 必须与 tasks.json 中的 label 完全一致。保存后,切回 .cpp 文件,选择“MSVC 调试活动文件”并按 F5。设置一个断点并观察程序是否停住,可以确认调试功能是否正常;程序输出正常只说明运行成功。

如果程序能够编译,但编辑器仍对标准库头文件报错,可运行命令面板中的 C/C++: Edit Configurations (UI),检查 IntelliSense 使用的编译器路径,并将 C++ 标准设为 C++20,与编译参数保持一致。

参考资料

vscode 配置 cl.exe 编译 vs c/c++工程