Skip to content

VSCode配置C++开发环境 ​

本文以Windows为例

前置工作 ​

既然选择使用VSCode,那么就是不想用visual studio,推荐安装Microsoft Visual C++ Build Tools即可, 下载地址https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/。当然,你也可以选择安装visual studio,但是需要安装C++开发工具包。

如果工程构建需要使用CMake,那么需要安装CMake。下面介绍一下windows上的安装方法, linux类似。 下载访问https://cmake.org/download/, 下载Binary distributions中的Windows x64 ZIP包。下载完成后将解压到你指定目录,路径不要有中文。然后将解压后目录中的bin目录绝对路径添加到系统环境变量Path中。 然后,打开一个新的命令行窗口,执行cmake --version,确认是否安装成功。如果有版本信息,说明安装配置成功。

安装VSCode插件 ​

VSCode插件市场搜索"C/C++ Extension Pack", 这是微软官方开发的C++插件包

配置与测试 ​

先用VSCode打开一个空文件夹,然后在src文件夹下创建一个main.cpp文件,随便写个打印示例。比如:

cpp
#include <iostream>
#include <vector>
#include <string>

int main() {
    std::vector<std::string> messages = {
        "Hello from MSVC!",
        "VS Code + Build Tools works!"
    };

    for (const auto& msg : messages) {
        std::cout << msg << std::endl;
    }

    std::cout << "Compiler: MSVC " << _MSC_VER << std::endl;

    return 0;
}

新建.vscode文件夹,然后新增tasks.json文件,添加编译任务的执行命令,参考内容如下:

json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "MSVC",
            "type": "shell",
            "command": "call \"C:\\Program Files (x86)\\Microsoft Visual Studio\\18\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat\" && if not exist build mkdir build && cl.exe /EHsc /Zi /Fo:build\\main.obj /Fd:build\\vc140.pdb /Fe:build\\main.exe src\\main.cpp",
            "options": {
                "cwd": "${workspaceFolder}",
                "shell": {
                    "executable": "cmd.exe",
                    "args": ["/d", "/c"]
                }
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": "$msCompile",
            "presentation": {
                "reveal": "always",
                "panel": "new"
            }
        }
    ]
}

注意:command中vcvars64.bat的路径需要根据实际情况修改。终端想要正确执行cl.exe, 需要先执行vcvars64.bat以设置环境变量。cl.exe 自身不会自动定位 MSVC 的标准库头文件(<iostream> 等)和链接器,它完全依赖环境变量 INCLUDE、LIB、PATH 来找到这些东西。vcvars64.bat 的作用就是设置这些环境变量。 以上脚本只是一个参考,安装Microsoft Visual C++ Build Tools后,会有名为x64 Native Tools Command Prompt for VS的命令行工具。 vscode中设置此命令行工具为默认终端也是一个方案,就不需要指定运行设置环境变量的脚本了

不出意味,使用快捷键crtl+shift+b即可执行编译任务。成功后,会在build文件夹下生成main.exe文件。

下面可以执行测试,创建执行任务。.vscode文件夹下新增launch.json文件,参考内容如下:

json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug MSVC",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\build\\main.exe",
            "args": [],
            "cwd": "${workspaceFolder}",
            "stopAtEntry": false
        }
    ]
}

执行f5即可调试, 执行crtl+f5即可运行

使用cmake构建 ​

首先,安装cmake,确保终端能使用cmake命令。

创建一个CMakeLists.txt文件,参考内容如下:

cmake_minimum_required(VERSION 3.15)

project(cpp-test LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_executable(main src/main.cpp)

修改tasks.json文件,添加cmake任务

json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "cmake-configure",
            "type": "shell",
            "command": "cmake",
            "args": [
                "-B",
                "${workspaceFolder}/build_cmake",
                "-G",
                "Visual Studio 18 2026",
                "-A",
                "x64",
                "-S",
                "${workspaceFolder}"
            ],
            "problemMatcher": [],
            "detail": "CMake 配置生成构建文件"
        },
        {
            "label": "cmake-build",
            "type": "shell",
            "command": "cmake",
            "args": [
                "--build",
                "${workspaceFolder}/build_cmake",
                "--config",
                "Release"
            ],
            "dependsOn": "cmake-configure",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": "$msCompile",
            "detail": "CMake 编译项目(依赖配置步骤)"
        }
    ]
}

修改launch.json文件

json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug main",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build_cmake/Release/main.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "console": "integratedTerminal",
            "preLaunchTask": "cmake-build"
        }
    ]
}

作为初学者,会有疑问,为什么cmake依赖cl.exe执行编译,为什么不需要先执行vcvars64.bat ?

cmake通过msbuild构建工具来间接执行cl.exe,不需要先执行vcvars64.bat。

CMake 是如何找到 MSBuild 的?

不是通过环境变量,而是通过 vswhere.exe——微软官方的 VS 实例探测工具。一般默认在C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe

CMake 的查找流程:

text
CMake
  → 调用 vswhere.exe
    → vswhere 查询 VS 安装注册表
      → 返回安装路径: C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\
  → 拼接 MSBuild 路径
    → ...\BuildTools\MSBuild\Current\Bin\MSBuild.exe

能不能直接用 MSBuild 代替 vcvars64.bat + cl.exe

可以。直接调用 MSBuild 编译 .vcxproj,完全不需要 vcvars64.bat。

text
MSBuild.exe main.vcxproj /p:Configuration=Release
  → 自动找到 cl.exe、link.exe、头文件、库
  → 编译成功 ✓

所以如果你之前手写 cl.exe 命令行来编译,想避免 vcvars64.bat,有两条路:

  • 1.手写 .vcxproj → 直接用 MSBuild(但手写 .vcxproj 很繁琐,不推荐)
  • 2.用 CMake → CMake 自动生成 .vcxproj → MSBuild 驱动编译(推荐,正是现在的方案)

这也正是 CMake 的核心价值之一:用简洁的 CMakeLists.txt 描述项目,自动生成平台原生的工程文件,让平台原生的构建引擎(MSBuild / Make / Ninja 等)来干活,既不用手写复杂的工程文件,也不用操心环境变量。