104

我正在尝试使用 GCC 4.9(实验性)在 OS X 10.9 上用 C 语言编译程序。出于某种原因,我在编译时收到以下错误:

gcc: fatal error: stdio.h: No such file or directory

然后我尝试了一个简单的 Hello World 程序:

#include <stdio.h>

int main(int argc, const char *argv[])
{
    printf("Hello, world!");
    return 0;
}

同样,在运行时gcc -o ~/hello ~/hello.c,我得到了同样的错误。gcc我正在使用stdio. 什么可能导致此问题,如何解决?

4

5 回答 5

171

苹果系统

我也有这个问题(通过 Macports 编译器遇到)。以前版本的 Xcode 允许您通过 xcode/Preferences 安装命令行工具,但 xcode5 没有在 GUI 中提供命令行工具选项,所以我假设它现在自动包含在内。尝试运行以下命令:

xcode-select --install

如果您看到开发人员工具已安装的错误消息(但仍然找不到头文件),请清除任何现有的以进行全新安装:

sudo rm -rf /Library/Developer/CommandLineTools

Ubuntu

(根据这个答案

sudo apt-get install libc6-dev

高山 Linux

(根据此评论

apk add libc-dev
于 2013-11-22T16:55:46.917 回答
47

Mac OS 莫哈韦沙漠

接受的答案不再有效。运行该命令xcode-select --install时,它会告诉您使用“软件更新”来安装更新。

在此链接中是更新的方法:

打开终端,然后:

cd /Library/Developer/CommandLineTools/Packages/
open macOS_SDK_headers_for_macOS_10.14.pkg

这将打开一个安装向导。

2019 年 12 月更新

更新到 Mojave 10.15.1 后,使用似乎xcode-select --install按预期工作。

于 2019-02-03T04:10:06.187 回答
26

ubuntu 用户:

sudo apt-get install libc6-dev

gem install json -v '1.8.2'特别是在他们的虚拟机上安装有问题的 ruby​​ 开发人员

于 2015-03-26T17:23:11.440 回答
3

我知道我的情况很少见,但我仍然会在此处添加它,以供稍后解决问题的人使用。我的 Makefile 中有一个 Linux 内核模块目标,我尝试将我的用户空间程序与没有 stdio 的内核模块一起编译。将其作为单独的目标解决了这个问题。

于 2020-05-04T19:57:04.647 回答
2

我有同样的问题。我从应用商店安装了“XCode:开发工具”,它为我解决了这个问题。

我认为这个链接会有所帮助: https ://itunes.apple.com/us/app/xcode/id497799835?mt=12&ls=1

感谢 Yann Ramin 的建议。我认为链接有更好的解决方案,但这既简单又快速。

祝你好运!

于 2013-10-25T20:43:02.923 回答