致命错误:limits.h:没有这样的文件或目录

Stu*_*erg 8 macos xcode gcc

在OSX上,当我使用外部提供的编译器(例如gcc-4.8)时,我无法从命令行编译简单程序.limits.h无法找到系统标头.

示例错误消息:

fatal error: limits.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

要么:

fatal error: stdio.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

等等.

怎么了?

Stu*_*erg 20

确保您已安装xcode命令行工具:

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

(接受弹出对话框.)

这将把系统头文件安装到像gcc这样的工具所期望的标准位置,例如/usr/include.

  • gcc安装自己的C++标头,但对于C标头,故事情况则不同.它试图使用系统自己的C-header.在某些(好的,很多)系统中,C-header不符合ANSI标准,因此gcc将提供自己的"固定"标头来替换一些"损坏的"系统标头.但对于那些不需要"修复"的标题,将不会有它的gcc副本.仅使用原始系统标头.有关详细信息,请参阅从源代码编译gcc时gcc"fix-includes"步骤的文档. (2认同)