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

CGccStdio

C Problem Overview


I'm trying to compile a program in C on OS X 10.9 with GCC 4.9 (experimental). For some reason, I'm getting the following error at compile time:

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

I then tried a simple Hello World program:

#include <stdio.h>

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

Again, upon running gcc -o ~/hello ~/hello.c, I got the same error. I'm using an experimental version of gcc, but it seems implausible that there would be a release which generated errors upon importing stdio. What could be causing this issue, and how can it be fixed?

C Solutions


Solution 1 - C

macOS

I had this problem too (encountered through Macports compilers). Previous versions of Xcode would let you install command line tools through xcode/Preferences, but xcode5 doesn't give a command line tools option in the GUI, that so I assumed it was automatically included now. Try running this command:

xcode-select --install

If you see an error message that developer tools are already installed (and still header files can't be found), wipe out any existing one to do a fresh installation:

sudo rm -rf /Library/Developer/CommandLineTools
Ubuntu

(as per this answer)

sudo apt-get install libc6-dev
Alpine Linux

(as per this comment)

apk add libc-dev

Solution 2 - C

Mac OS Mojave

The accepted answer no longer works. When running the command xcode-select --install it tells you to use "Software Update" to install updates.

In this link is the updated method:

Open a Terminal and then:

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

This will open an installation Wizard.

Update 12/2019

After updating to Mojave 10.15.1 it seems that using xcode-select --install works as intended.

Solution 3 - C

ubuntu users:

sudo apt-get install libc6-dev

specially ruby developers that have problem installing gem install json -v '1.8.2' on their VMs

Solution 4 - C

I know my case is rare, but I'll still add it here for someone who troubleshoots it later. I had a Linux Kernel module target in my Makefile and I tried to compile my user space program together with the kernel module that doesn't have stdio. Making it a separate target solved the problem.

Solution 5 - C

I had the same problem. I installed "XCode: development tools" from the app store and it fixed the problem for me.

I think this link will help: <https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ls=1>

Credit to Yann Ramin for his advice. I think there is a better solution with links, but this was easy and fast.

Good luck!

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJulesView Question on Stackoverflow
Solution 1 - CamosView Answer on Stackoverflow
Solution 2 - CSamshelView Answer on Stackoverflow
Solution 3 - Cequivalent8View Answer on Stackoverflow
Solution 4 - CSoidView Answer on Stackoverflow
Solution 5 - CnevieandphilView Answer on Stackoverflow