Mac系统更新后出现C/C++ #include报错该如何解决?
解决方案
这个报错是Mac系统更新后Xcode命令行工具的头文件路径变更,VS Code的C/C插件无法找到系统C标准库头文件导致的,按以下步骤操作即可修复:
- 重置Xcode命令行工具路径:
打开终端依次执行以下2条命令,执行第二条命令时需要输入你的Mac开机密码:
如果第一条命令提示「command line tools are already installed」,直接执行第二条命令即可。xcode-select --install sudo xcode-select --reset - 获取系统SDK头文件路径:
终端执行命令:
复制命令输出的完整路径,示例输出为xcrun --show-sdk-path/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk - 配置VS Code的C/C插件头文件搜索路径:
按快捷键Cmd+Shift+P调出命令面板,搜索并选择「C/C: Edit Configurations (JSON)」,在自动打开的c_cpp_properties.json文件中找到includePath配置项,追加你刚才复制的SDK路径下的头文件目录,最终配置示例如下:
注意把示例中的SDK路径替换为你自己执行{ "configurations": [ { "name": "Mac", "includePath": [ "${workspaceFolder}/**", "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/**", "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/**" ], "defines": [], "macFrameworkPath": [ "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks" ], "compilerPath": "/usr/bin/clang++", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "macos-clang-arm64" } ], "version": 4 }xcrun --show-sdk-path得到的实际路径。 - 重启VS Code重新打开项目,报错即可消除。
如果后续直接在终端编译代码也出现头文件找不到的报错,可以在编译命令中指定头文件路径,示例如下:
clang++ -o decimal_to_octal decimal_to_octal.cpp -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include
内容的提问来源于stack exchange,提问作者James Walter
相关产品推荐
相关产品推荐

