这是一份为你量身定制的现代 C/C++ 开发环境配置手册 (Windows/MinGW/Clangd 版)

这份手册的目标是:配置一次,稳用三年。按照这个流程,你不仅能解决“找不到头文件”的问题,还能直接掌握适合中大型项目的开发工作流。


第一部分:环境安装与配置 (地基)

1. 下载与安装 MSYS2

  • 下载: MSYS2 官网 (点击 msys2-x86_64-xxxxxxxx.exe)。
  • 安装: 一路下一步,路径保持默认 C:\msys64 最好(路径中不要有中文或空格)。

2. 配置国内镜像源 (解决下载失败)

安装完成后,会自动弹出一个终端窗口(如果没有,去开始菜单找 MSYS2 UCRT64,紫色图标)。在终端里依次执行以下命令:

  1. 替换为清华源 (复制并回车):
    sed -i 's#https\?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g' /etc/pacman.d/mirrorlist*
  2. 更新数据库
    pacman -Sy

3. 安装核心工具链

在同一个终端窗口,复制以下命令安装 Clang、Clangd、CMake、Ninja 和 GDB:

pacman -S mingw-w64-ucrt-x86_64-clang mingw-w64-ucrt-x86_64-clang-tools-extra mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja mingw-w64-ucrt-x86_64-gdb

(遇到提示全部输 Y 并回车)

4. 配置 Windows 环境变量 (至关重要)

如果不做这一步,VS Code 找不到编译器。

  1. Win 搜 “环境变量” “编辑系统环境变量”。
  2. 点击右下角 “环境变量”。
  3. 系统变量 (下方的框) 中找到 Path,双击编辑。
  4. 点击 “新建”,填入:
    C:\msys64\ucrt64\bin
  5. 一路点击“确定”保存。

第二部分:VS Code 插件与设置 (装修)

1. 安装插件

打开 VS Code 左侧扩展市场,搜索并安装:

  1. clangd (提供智能提示)
    • 安装后若提示冲突,请选择 Disable Microsoft C/C++ IntelliSense。
  2. CMake Tools (管理构建和运行)
  3. CodeLLDB (强大的调试器)

2. 核心设置 (解决 stdio.h 找不到的问题)

这是最关键的一步,告诉 clangd 你的编译器在哪里。

  1. 在 VS Code 中按下 Ctrl + , 打开设置。
  2. 搜索 clangd.arguments
  3. 点击 “添加项” (Add Item),填入以下这行(注意路径必须准确):
    --query-driver=C:\msys64\ucrt64\bin\clang.exe,C:\msys64\ucrt64\bin\clang++.exe,C:\msys64\ucrt64\bin\gcc.exe
  4. 重启 VS Code

第三部分:首次使用与项目模板 (实战)

为了适应“大一点的项目”,不要直接编译单文件,请养成使用 CMake 的习惯。

1. 建立标准项目结构

新建一个文件夹(例如 MyProject),在里面创建两个文件:

文件 1: main.c

#include <stdio.h>
 
int main() {
    printf("Hello, Clangd & CMake!\n");
    return 0;
}

文件 2: CMakeLists.txt (项目说明书)

cmake_minimum_required(VERSION 3.10)
project(TestProject)#括号里项目名字可改
 
# 【核心】导出编译命令,让 clangd 能够读取头文件路径,否则会报错,不改
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 
# 添加可执行文件:生成的程序叫 app,源文件是 main.c
 
add_executable(app main.c)

add_executable(app main.c)

  • 必须吗? 必须。这是告诉 CMake 你的代码在哪里,以及你要生成什么程序。

  • 需要改吗? 这是你以后每次都要修改的地方

    • 它的语法是:add_executable(生成的可执行文件名 源文件1 源文件2 ...)

修改场景举例:

场景 A:你想给输出的程序换个名字 比如你想生成的程序叫 game.exe 而不是 app.exe

改为:add_executable(game main.c)

场景 B:你有多个源文件 比如你的代码分成了 main.c(主函数)和 math_tools.c(数学计算)。

改为:add_executable(app main.c math_tools.c) (注意中间用空格隔开)

场景 C:你写的是 C++ 而不是 C 语言 你的源文件是 main.cpp

改为:add_executable(app main.cpp)


2. 首次配置 (选 Kit)

  1. 用 VS Code 打开 MyProject 文件夹。
  2. VS Code 会检测到 CMakeLists.txt,询问你是否配置,选 Yes
  3. 如果没问,看底部状态栏左侧,点击 No Kit Selected (或者类似的文字)。
  4. 在弹出的列表中,务必选择Clang ... x86_64-ucrt-posix-seh

3. 运行与调试

看 VS Code 底部状态栏

  • 编译: 点击 Build (或齿轮图标)。
  • 运行: 点击 Run (或播放图标 ▶)。
  • 调试: 点击 Debug (或虫子图标)。

第四部分:常见问题急救 (备忘)

Q1: 代码里全是红色波浪线,提示 stdio.h not found

  • 检查: 是否在 CMakeLists.txt 里加了 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
  • 检查: 构建过项目了吗?(需要先 Build 一次生成 compile_commands.json)。
  • 检查: VS Code 设置里的 --query-driver 路径是否写错了?

Q2: 终端显示中文乱码?

  • Windows 终端默认是 GBK,Clang 默认是 UTF-8。
  • 设置搜索coding,找到
Files: Encoding

在读取和写入文件时使用的默认字符集编码。可以按语言对此项进行配置。
选择GBK
重新创建文件即可

Q3: 提示 Ninja 找不到?

  • 你可能在安装完 MSYS2 后没有重启电脑,或者没有彻底重启 VS Code,导致环境变量没生效。重启一下 VS Code 即可。

按照这个手册操作,你的环境现在应该非常完美了。可以开始写代码了!