如何在Apple芯片Mac的Windows虚拟机上用VSCode调试C++?
在Apple Silicon Mac的Parallels Windows 11虚拟机上用VSCode调试C++的最简路径
先解答你的两个问题
- 需求并不罕见:大量跨平台C++开发者会用Apple Silicon Mac+Parallels Windows虚拟机的组合,同时开发调试Mac和Windows平台的代码——毕竟Apple Silicon目前无法通过Boot Camp安装Windows,Parallels是最主流的替代方案。
- 你的遭遇极具普遍性:工具链配置的细节(比如MSYS2环境选择、虚拟机与主机环境的隔离、LLVM组件缺失)都是新手高频踩坑点,再加上Apple Silicon+Windows虚拟机的组合官方文档覆盖不足,走弯路很正常。
最简实现路径(避开你踩过的所有坑)
你之前最大的误区是混淆了Mac主机环境和Windows虚拟机环境:Apple Silicon上不能运行gdb是Mac主机的限制,但Windows虚拟机里的工具链完全不受这个影响,不需要在Mac上折腾LLVM/lldb-mi,直接在Windows虚拟机里配置工具链即可。
方案1:用MSVC工具链(推荐,零折腾)
这是微软官方的C++工具链,VSCode和CMake Tools对其支持最好,完全不用管调试器的问题:
- 在Windows虚拟机里安装Visual Studio Build Tools:
- 运行安装包后,只勾选「C++开发工具」和对应的「Windows SDK」,不需要安装完整的Visual Studio IDE。
- 在Windows虚拟机里安装VSCode,再安装「CMake Tools」和「C/C++」插件。
- 打开你的C++项目,CMake Tools会自动检测到MSVC工具链,直接点击状态栏的「Build」「Debug」按钮即可完成构建和调试——MSVC自带的调试器会被自动调用,完全不用处理gdb/lldb-mi的问题。
方案2:用MinGW-w64工具链(偏好GNU生态时选择)
如果习惯GNU工具链,直接在Windows虚拟机里配置MinGW即可,不需要编译lldb-mi:
- 在Windows虚拟机里安装MSYS2,安装完成后一定要打开「MINGW64」终端(不是默认的UCRT64,MINGW64环境的工具链兼容性更好)。
- 在MINGW64终端里执行以下命令安装所需工具:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb cmake - 打开VSCode,安装「CMake Tools」和「C/C++」插件。
- 按
Ctrl+Shift+P打开命令面板,执行「CMake: Select Kit」,选择「GCC xx.x.x x86_64-w64-mingw32」。 - 点击状态栏的「Build」「Debug」按钮即可,调试器用的是MinGW的gdb,在Windows虚拟机里可以正常运行。
你之前踩坑的原因复盘
- 混淆主机与虚拟机环境:你在Mac主机上折腾LLDB,但调试Windows代码的工具链应该配置在Windows虚拟机里,两者完全隔离。
- 不必要的lldb-mi编译:不管是MSVC还是MinGW,都有现成可用的调试器,完全不需要去编译lldb-mi——这是走了最复杂的弯路。
- MSYS2环境选择:UCRT64是MSYS2基于UCRT标准库的环境,部分工具链的CMake兼容性不如传统的MINGW64,这是MSYS2新手常踩的坑。
- llvm-config.cmake缺失:如果一定要编译lldb-mi,需要安装带开发组件的LLVM(安装时勾选「Add LLVM to PATH」和开发包),但这个需求本身就没必要。
内容的提问来源于stack exchange,提问作者Joymaker
相关产品推荐
相关产品推荐

