Mac上VS Code写C语言应使用系统自带clang而非安装GCC,只需安装Xcode Command Line Tools并配置C/C++插件指向/usr/bin/clang,配合Code Runner即可编译运行;调试需正确设置launch.json使用LLDB。

Mac 上 VS Code 写 C 语言,不用装 GCC,用系统自带的 clang
苹果从 macOS 10.14 起就不再预装 gcc,你敲 gcc --version 看到的其实是 clang 的软链接。硬装 gcc 不仅没必要,还容易和 Xcode 工具链冲突,导致 #include <stdio.h> 报红、IntelliSense 找不到系统头文件。
正确做法是信任系统:Xcode Command Line Tools 自带完整 clang + 标准库 + 头文件路径。只要执行过:
-
xcode-select --install(终端运行,按提示点“安装”) - 确认
clang --version有输出(比如 Apple clang version 15.x)
就齐活了。别去 brew install gcc,也别手动改 includePath 指向 /usr/local/include —— 那里压根没 stdio.h。
插件只装两个:C/C++ 和 Code Runner
微软官方的 C/C++ 插件负责语法高亮、跳转、智能提示(IntelliSense),但默认不提供一键运行;Code Runner 补上这最后一环,点右上角三角 ▶ 就能编译+执行,适合初学写小练习。
立即学习“C语言免费学习笔记(深入)”;
装完 Code Runner 后务必进设置调几项,否则会踩坑:
- 勾选
Clear Previous Output:避免上次输出混在本次结果里 - 勾选
Run in Terminal:不然scanf读不到输入,程序直接卡死 - 勾选
Save File Before Run:防止你改了代码却忘了保存,运行的还是旧版 - 取消勾选
Preserve Focus:运行时别抢编辑器焦点,不然输完回车光标还在终端里,没法继续敲代码
#include <stdio.h> 报错 “无法打开源文件”,不是插件问题
这是最常被误判为“插件没装好”的错误,实际 95% 是 IntelliSense 没认出系统头文件位置。VS Code 默认不会自动猜 Mac 的 SDK 路径,得手动告诉它:
- 把
.c文件打开,看到报错提示时,点右下角“快速修复” → “选择 IntelliSense 配置” - 选
Use clang in /usr/bin(不是Use clang++,那是给 C++ 的) - 如果没弹出来,按
Cmd+Shift+P→ 输入C/C++: Edit Configurations (UI)→ 在 “Compiler path” 里填/usr/bin/clang
填完保存,等几秒,波浪线自动消失。别碰 c_cpp_properties.json 里手写的 includePath 数组——Mac 的 SDK 路径又长又带版本号(比如 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include),手动写极易出错且升级 Xcode 后立刻失效。
调试前必须配 launch.json,但编译任务可以省略
如果你只是写算法题、小 demo,用 Code Runner 点一下就能跑,完全不用碰 tasks.json 或 launch.json。但一旦要设断点、看变量值、单步执行,就必须有 launch.json。
生成方式很简单:点左侧“运行和调试”图标(Ctrl+Shift+D)→ 点齿轮图标 → 选 C++ (LLDB) 模板 → 它会自动生成一个基础配置。重点改两处:
-
"program"改成"${fileDirname}/${fileBasenameNoExtension}"(去掉 .out 或 .exe 后缀,Mac 可执行文件没后缀) -
"preLaunchTask"改成"C/C++: clang build active file"(确保调试前自动编译,别用自己写的 task 名)
注意:MIMode 必须是 lldb(macOS 原生命令行调试器),不是 gdb —— Mac 上 gdb 无法调试无签名二进制,强行配会卡在 “waiting for debugger to attach”。
真正卡住人的从来不是“怎么装”,而是 clang 和 lldb 这套工具链的默认行为和 Windows/Linux 完全不同:它不依赖环境变量,不认自定义路径,一切以 Xcode 安装状态为准。所以删 Xcode、重装 Command Line Tools、换硬盘迁移系统后,第一件事永远是重新跑一遍 xcode-select --install。











