我正在尝试使用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
时会出现导致错误的版本似乎难以置信。可能导致此问题的原因,以及如何解决?
答案 0 :(得分:100)
我也有这个问题(通过Macports编译器遇到)。以前版本的Xcode允许你通过xcode / Preferences安装命令行工具,但xcode5没有在GUI中提供命令行工具选项,因此我认为它现在自动包含在内。尝试运行此命令:
xcode-select --install
(根据此answer)
sudo apt-get install libc6-dev
(根据此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的内核模块一起编译。 将其作为单独的目标可以解决问题。