Appearance
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 等)来干活,既不用手写复杂的工程文件,也不用操心环境变量。