在OSX上,当我使用外部提供的编译器(例如gcc或自定义clang安装)时,我无法从命令行编译简单的程序。 找不到像limits.h
这样的系统标头。
错误消息示例:
fatal error: limits.h: No such file or directory
或:
fatal error: stdio.h: No such file or directory
或:
fatal error: 'stdlib.h' file not found
等等。
怎么了?
确保已安装 xcode 命令行工具:
xcode-select --install
(接受弹出对话框。
这会将系统标头安装到 gcc 等工具期望的标准位置,例如 /usr/include
.
如果
这不起作用,则可能与升级到macOS 10.14 Mojave有关
有关如何解决,请参阅此处的答案:
升级到莫哈韦后无法在Mac上编译C程序
不
知何故,当您安装mojave时,它会删除标头 - 运行:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg