VSCode + MSYS2 + Xmake:打造 Windows 下最优雅的 C/C++ 开发环境
一、入门C/C++开发的“拦路虎”
你是否曾怀揣着精通C 语言的热血,兴冲冲地打开教程,结果第一步就被劝退了?
对于新手来说,C/C++ 最大的“拦路虎”往往不是语法错误,而是——“我的代码到底在哪写?怎么让它跑起来?”
放眼望去,市面上的IDE似乎有两个极端:要么是“航空母舰”,要么是“上古神器”。
1.“航空母舰”般的压迫感 —— Visual Studio
很多教程会推荐你安装微软的 Visual Studio。没错,它是宇宙最强 IDE,但对于初学者来说,它太重了。安装它动辄需要 20GB~50GB 的空间,让你的硬盘瑟瑟发抖。这就好比你想削个苹果,结果却被要求买一台全自动工业级数控机床。
而且,它把编译器、链接器等底层细节封装成了一个黑盒子。你可能点了几个月“运行”按钮,却依然不知道代码是如何变成程序的。
2.“上古神器”的无力感 —— Dev-C++
另一种则是学校机房标配的Dev-C++ 或者Code::Blocks这种早已经停止更新的IDE。他们能够提供轻量化的开发环境,帮助初学者快速的写出”Hello World!”。
但是随着代码的不断堆积却发现了很多重量级问题:
-
“老年人”般的反应:Dev-C++的代码补全功能总是时有时无,常常只是简单的文本匹配,不会理解C++的语法。
-
“事后诸葛亮”式的错误检测:当你写完上百行代码,信心满满地按下编译按键时,结果瞬间弹出超出代码行数的errors,你不得不在“雷区”中艰难的排查。
-
“祖传”UI:缺乏现代IDE的美观主题和拓展生态,缺少系统的集成功能。
那么这个时候就有人要问了:“煮啵煮啵,既然太重和太旧都不行,那么有没有一个轻量、现代、透明且速度快的开发环境?”
有的兄弟有的,这就是我今天要推荐的方案:VSCode + MSYS2 + Clangd + CodeLLDB。
-
VSCode:负责提供高颜值的界面和极致的编辑体验,现在许多AI IDE是基于VSCode开发,方便转移设置。
-
MSYS2:负责在 Windows 上提供最纯正的编译工具和先进的包管理工具,让你看清代码运行的本质。
-
Clangd:目前世界上最聪明的 C++ 智能补全引擎,它能像顶级编辑校对稿件一样,实时检查你的语法。
-
LLDB:新一代高性能调试器,它能让程序在这一秒“定格”,允许你像侦探一样,查找“凶手”是谁。
别被这些名词吓到,接下来,我会像拼积木一样,带你把这套让我爱不释手的环境搭建起来。相信我,配置好之后,你会找回"精通"C语言的热情。
现在跟着我的文章动手吧👇
二、开发环境搭建指南
1.构建系统安装
首先需要配置我们这套开发环境的地基MSYS2
步骤一:前往MSYS2的下载页面,下载安装包。

步骤二:安装MSYS2
打开下载好的MSYS2安装包,只需要注意安装目录即可

CAUTION请务必记住MSYS2的安装目录!
例如我的路径是:
F:\software\toolchain\MSYS2,后面我们会用到它很多次。
步骤三:设置环境变量
当我们安装好MSYS2后,我们的操作系统并查找不到MSYS2藏在了哪一个文件夹中。需要我们手动设置环境变量,引导操作系统寻找到“宝藏”。
按下Windows+Q查询编辑系统环境变量,点击即可进入系统属性,点击”环境变量“。

然后点击Path进行系统变量编辑

点击右上方新建将我们需要使用的工具链目录填入系统变量中(请根据你的实际安装路径修改!)

TIP这里就是使用上方安装目录的地方,比如我的安装目录为F:\software\toolchain\MSYS2,我要使用Clang工具链则添加F:\software\toolchain\MSYS2\clang64\bin。
如果要使用UCRT64工具链则添加F:\software\toolchain\MSYS2\ucrt64\bin,但是UCRT64工具链与该开发环境并不是完全适配
步骤四:工具链安装
打开MSYS2安装目录,点击clang64.exe进入clang工具链虚拟环境。
输入以下命令安装编译器(遇到提示一直回车确认即可):
pacman -Syu mingw-w64-clang-x86_64-toolchain接着,安装构建神器 Xmake 和 CMake:
pacman -Su mingw-w64-clang-x86_64-xmake mingw-w64-clang-x86_64-cmakeTIP相较于直接从LLVM、xmake、cmake官网下载工具然后再添加到系统变量中,使用MSYS2只需一个变量即可完成工具的整合。而且使用pacman能够更方便的管理各组件中的依赖关系
步骤五:工具链验证
打开Windows终端,依次输入clang -v、xmake --version、cmake --version如果不是红色提示则工具链配置完成
****
2.VSCode配置
步骤一:安装VSCode
VSCode 本质上只是一个编辑器,它不负责运行代码。你可以认为它是法拉利的外壳,本身不可以载人出行,但是你可以安装上其他配件让他成为一个完整的跑车。
进入VSCode的下载页面,点击Download即可完成VSCode的下载。

打开安装程序,选择好安装位置,一路下一步即可。
步骤二:安装拓展
打开VSCode进行拓展安装

需要的拓展如下

步骤三:拓展设置
按下 Ctrl + Shift + P,输入 Open User Settings (JSON),打开 settings.json 文件。 请将下面的代码粘贴进去,但务必修改路径!
// xmake settings "xmake.debugConfigType": "codelldb", // 使用 codelldb 插件而非 cpptools 进行调试 "xmake.runMode": "buildRun", // 运行前自动 build "xmake.buildLevel": "debug", "xmake.customDebugConfig": { "console": "integraedTerminal" // XMake调试时使用集成终端而非 debug console,也可以使用 externalTerminal }, "xmake.executable": "F:/software/toolchain/msys2/mingw64/share/xmake/xmake.exe", // xmake安装位置
// Clangd settings "clangd.path": "F:/software/toolchain/msys2/clang64/bin", // Clangd 文件位置 "clangd.arguments": [ // "--all-scopes-completion", // 全局补全(补全建议会给出在当前作用域不可见的索引,插入后自动补充作用域标识符),例如在main()中直接写cout,即使没有`#include <iostream>`,也会给出`std::cout`的建议,配合"--header-insertion=iwyu",还可自动插入缺失的头文件 "--background-index", // 后台分析并保存索引文件 "--clang-tidy", // 启用 Clang-Tidy 以提供「静态检查」 "--clang-tidy-checks=performance-*, bugprone-*, misc-*, google-*, modernize-*, readability-*, portability-*", "--compile-commands-dir=${workspaceFolder}/build", // 编译数据库(compile_commands.json 文件)的目录位置 "--completion-parse=auto", // 当 clangd 准备就绪时,用它来分析建议 "--completion-style=detailed", // 建议风格:打包(重载函数只会给出一个建议);还可以设置为 detailed "--enable-config", // 启用配置文件(YAML格式) "--fallback-style=Google", // 默认格式化风格: 在没找到 .clang-format 文件时采用,可用的有 LLVM, Google, Chromium, Mozilla, Webkit, Microsoft, GNU "--function-arg-placeholders=true", // 补全函数时,将会给参数提供占位符,键入后按 Tab 可以切换到下一占位符,乃至函数末 "--header-insertion-decorators", // 输入建议中,已包含头文件的项与还未包含头文件的项会以圆点加以区分 "--header-insertion=never", // 插入建议时不自动引入头文件 "--log=verbose", // 让 Clangd 生成更详细的日志 "--pch-storage=memory", // pch 优化的位置(Memory 或 Disk,前者会增加内存开销,但会提升性能) "--pretty", // 输出的 JSON 文件更美观 "--ranking-model=decision_forest", // 建议的排序方案:hueristics (启发式), decision_forest (决策树) "-j=8", // 同时开启的任务数量 "--query-driver=F:/software/toolchain/msys2/clang64/bin/clang*" // clang 编译器的路径(设置错误会导致 clangd 无法识别标准库) ], "clangd.checkUpdates": true, // 自动检测 clangd 更新 "clangd.onConfigChanged": "restart", // 借助网上的信息排序建议 "clangd.detectExtensionConflicts": true, // 当其它拓展与 clangd 冲突时警告并建议禁用 "editor.suggest.snippetsPreventQuickSuggestions": false, // clangd的snippets有很多的跳转点,不用这个就必须手动触发Intellisense了
// LLDB settings "lldb.commandCompletions": true, // LLDB 指令自动补全 "lldb.dereferencePointers": true, // LLDB 指针显示解引用内容 "lldb.evaluateForHovers": true, // LLDB 鼠标悬停在变量上时预览变量值 "lldb.launch.expressions": "native", // LLDB 监视表达式的默认类型 "lldb.showDisassembly": "never", // LLDB 不显示汇编代码 "lldb.verboseLogging": true, "clangd.onConfigChanged.forceEnable": true,CAUTION🔍 避坑指南
代码中所有带
F:/software/...的路径,必须改成你电脑上实际的 MSYS2 安装路径!注意路径分隔符请使用正斜杠/。
3.Hello World!
根据上面的操作,你已经完成了环境的配置。让我们来构建一个工程验证一下吧。
在VSCode中打开一个文件夹,然后按下Ctrl+Shift+P,输入xmake,选择xmakeC++ -> Console即可完成xmake工程创建。
在VSCode右下角的Status Bar中配置xmake

选择平台为mingw或者msys,选择工具链为clang
然后点击运行按钮(小三角)。

如果在终端里看到了 hello world!,恭喜你!你已经成功在 Windows 上跑通了最现代化的 C++ 开发流程!🚀
三、结语
为什么要这么折腾?直接装一个开箱即用的 CLion 或者继续用 Dev-C++ 不好吗?
这就好比买速冻饺子和自己和面剁馅的区别。
-
一体化 IDE(如Clion):方便,开箱即用,但极其庞大,启动慢,像开着一辆重型卡车去买菜。
-
VSCode + MSYS2:这是你自己组装的赛车。你对它的每一个零件都了如指掌。当环境出问题时,你不再是两眼一抹黑,因为你知道它是如何运作的。
这种掌控感,是成为一名优秀程序员的第一步。
在出版界,如果你不了解纸张的克重和油墨的特性,就很难做出一本完美的书;在编程界,如果你不了解编译器和链接器是如何工作的,就很难写出高性能的代码。
希望这篇指南能帮你顺利搭建起属于你的代码“超跑”。如果在配置过程中遇到了报错,欢迎发送邮件到2363278450@qq.com,我会帮助你完成独属于你的“超跑”,同时也能不断完善这篇文章!
Happy Coding! ✨
部分信息可能已经过时




