C Programming

Courses

Windows 上安装和配置 VS Code:编写、运行与调试 C 程序

Resources

Windows 上配置 VS Code 编写 C 程序

本指南适用于 Windows 11 的 x64 电脑,用于编译、运行和调试只有一个源文件的 C 程序。请依次完成安装、菜单设置、配置文件设置和调试练习。

1. 安装

1.1 VS Code 与 C/C++ 扩展

  1. 从 VS Code 官网 下载并安装 Windows 版本。
  2. 打开 VS Code,选择左侧“扩展”,搜索 C/C++,安装发布者为 Microsoft 的扩展。

1.2 GCC 编译器与 GDB 调试器

  1. 从 MSYS2 官网 下载安装程序,安装到 C:\msys64。

  2. 打开开始菜单中的 MSYS2 UCRT64,执行:

    pacman -Syu
    

    如果提示关闭终端,按提示关闭,然后重新打开 MSYS2 UCRT64,再执行一次该命令。

  3. 更新完成后执行:

    pacman -S --needed mingw-w64-ucrt-x86_64-toolchain
    

    选择软件包时按 Enter,确认安装时输入 Y。

  4. 在 Windows 开始菜单搜索“编辑账户的环境变量”,编辑用户变量 Path,新建一项:

    C:\msys64\ucrt64\bin
    
  5. 保存后完全退出并重新打开 VS Code,选择“终端 → 新建终端”,分别执行:

    gcc --version
    gdb --version
    

    两条命令都显示版本信息,说明终端可以找到 GCC 和 GDB。如果提示找不到命令,请检查工具是否已安装,以及 Path 中的路径是否正确。

2. 通过菜单设置运行和调试

2.1 打开练习文件夹

创建一个练习文件夹,例如 C:\c-course\first-program。在 VS Code 中选择“文件 → 打开文件夹”,打开该文件夹。新建 hello.c,输入以下代码并保存:

#include <stdio.h>

int main(void)
{
    int a = 2;
    int b = 3;
    int sum = a + b;
    printf("sum = %d\n", sum);
    return 0;
}

2.2 首次选择编译器

  1. 在编辑器中打开 hello.c。
  2. 选择顶部菜单“运行 → 启动调试(Start Debugging)”。
  3. 如果出现调试器列表,选择 C++ (GDB/LLDB)。
  4. 在编译器列表中选择 C/C++: gcc.exe build and debug active file,确认路径为 C:\msys64\ucrt64\bin\gcc.exe。
  5. 编译成功后,终端显示 sum = 5。此时没有设置断点,程序会直接执行完毕。

C/C++ 扩展会创建 .vscode/tasks.json。接下来按第 3 节设置两个配置文件,指定编译器和调试器的路径。如果列表中没有 GCC,也可以直接按第 3 节创建配置文件。

2.3 运行程序

每次运行前,先打开要运行的 .c 文件并保存,再选择以下菜单:

目的顶部菜单快捷键
直接运行,查看结果运行 → 以非调试模式运行(Run Without Debugging)Ctrl+F5
调试,在断点处暂停运行 → 启动调试(Start Debugging)F5

完成第 3 节的设置后,运行和调试都使用 C/C++: gcc.exe build and debug active file 配置。VS Code 会先编译当前打开的文件,再启动程序。在窗口下方的“终端”中查看输出;程序需要输入时,也在这里输入。

3. 设置两个配置文件

在练习文件夹中创建 .vscode 文件夹,并在其中创建下面两个文件。如果文件已存在,将其内容替换为下面的配置。

3.1 tasks.json:编译设置

文件位置:.vscode/tasks.json。

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "C/C++: gcc.exe build active file",
      "type": "process",
      "command": "C:\\msys64\\ucrt64\\bin\\gcc.exe",
      "args": [
        "-std=c11",
        "-Wall",
        "-Wextra",
        "-g",
        "-O0",
        "${file}",
        "-o",
        "${fileDirname}\\${fileBasenameNoExtension}.exe"
      ],
      "options": {
        "cwd": "${fileDirname}"
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

3.2 launch.json:运行和调试设置

文件位置:.vscode/launch.json。

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++: gcc.exe build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "args": [],
      "cwd": "${fileDirname}",
      "stopAtEntry": false,
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\msys64\\ucrt64\\bin\\gdb.exe",
      "preLaunchTask": "C/C++: gcc.exe build active file"
    }
  ]
}

保存两个配置文件,然后在编辑器中打开 hello.c。运行或调试时,如果出现配置列表,选择 C/C++: gcc.exe build and debug active file。

设置时注意以下三点:

  • 如果 MSYS2 安装在其他位置,请修改 command 和 miDebuggerPath 中的路径。
  • preLaunchTask 必须与编译任务的 label 完全一致。
  • 运行前,确认编辑器中当前打开的是要运行的 .c 文件。如果编译失败,先修复错误,再启动程序。

4. 调试例子:观察两个数相加

使用前面的 hello.c,观察加法执行前后的变量值。

  1. 在 int sum = a + b; 这一行的行号左侧单击,设置断点。左侧会出现红点,程序运行到这一行时会暂停。
  2. 选择“运行 → 启动调试”(F5)。程序在断点处暂停,高亮显示的语句还没有执行,因此加法尚未执行。
  3. 在左侧“运行和调试”的“变量(Variables)”区域查看变量,此时应看到 a = 2、b = 3。sum 还没有初始值,此时不要使用它的值。
  4. 按 F10(单步跳过),执行加法。程序会停在 printf 行,变量区域应显示 sum = 5。
  5. 再按一次 F10,终端显示 sum = 5。
  6. 按 F5(继续),程序继续运行直到结束。

将 int b = 3; 改为 int b = 4;,保存后再调试一次。执行加法后,变量区域应显示 sum = 6,终端也应输出 sum = 6。

参考:VS Code 官方 MinGW 配置教程 、调试配置说明 。