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

时间:2013-10-25 03:48:32

标签: c gcc stdio

我正在尝试使用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时会出现导致错误的版本似乎难以置信。可能导致此问题的原因,以及如何解决?

5 个答案:

答案 0 :(得分:100)

Mac OS X

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

xcode-select --install

Ubuntu的

(根据此answer

sudo apt-get install libc6-dev

Alpine Linux

(根据此comment

apk add libc-dev

答案 1 :(得分:25)

对于Mac OS Mojave,接受的答案不再起作用。运行命令xcode-select --install时,它会告诉您使用“软件更新”来安装更新。

link中的方法已更新:

打开一个终端,然后:

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

这将打开安装向导。

答案 2 :(得分:20)

ubuntu用户:

sudo apt-get install libc6-dev

在VM上安装gem install json -v '1.8.2'时出现问题的特别ruby开发人员

答案 3 :(得分:3)

我遇到了同样的问题。我从应用程序商店安装了“XCode:开发工具”,它解决了我的问题。

我认为此链接有助于: https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ls=1

感谢Yann Ramin的建议。我认为有一个更好的链接解决方案,但这很容易和快速。

祝你好运!

答案 4 :(得分:1)

我知道我的案件很罕见,但是我仍然会在这里添加它,以便以后进行疑难解答的人使用。 我的Makefile中有一个Linux内核模块目标,我试图将用户空间程序与没有stdio的内核模块一起编译。 将其作为单独的目标可以解决问题。