Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

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?

You can see where gcc is looking for header files by doing echo "#include <bogus.h>" | gcc -v -x c - and examining the search paths. – Christian Ternus Oct 25, 2013 at 3:53 Mavericks no longer has a base /usr/include. You need to link it into place from the XCode OS 10.9 SDK. – Yann Ramin Oct 25, 2013 at 3:57 @user2615799 Its at sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include – Yann Ramin Oct 25, 2013 at 15:11

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
                If you're using Xcode 6 beta 5, this command might fail. In that case you need to do sudo xcode-select -s /Applications/Xcode.app. When you're done, switch back using sudo xcode-select -s /Applications/Xcode6-Beta5.app.
– Sjors Provoost
                Aug 7, 2014 at 16:54
                Alpine guide is extremely usefull for Docker images based on alpine distro, works as wanted
– VanDavv
                Aug 21, 2018 at 15:31
                For macOS users who're still having problems after  installing CLTs stackoverflow.com/questions/63342521/…
– user10063119
                Oct 16, 2020 at 12:48

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.

When I open macOS_SDK_headers_for_macOS_10.14.pkg, I get a scary Warning from the Installer: "This package is incompatible with this version of macOS and may fail to install." I have Mojave. – Steve Siegel Dec 6, 2019 at 17:34 @SteveSiegel what Mac OS version are you running? I upgraded to 10.15.1 and I no longer had to do this workaround. Updated my answer to reflect that. – Samshel Dec 7, 2019 at 19:57 "updating to Mojave 10.15.1" that's incorrect. @SteveSiegel The pkg is deprecated. SDKROOT should be used. stackoverflow.com/a/63343829/10063119 – user10063119 Aug 10, 2020 at 16:37 Interesting. Thanks. This lib also solves some other issues. Recently, I encountered it trying to run a benchmark for petabyet.com (which uses gcc). – dhaupin Aug 23, 2016 at 18:24 This is not working for me on ubuntu. I already have libc6-dev installed and it is still looking in the wrong location for the file. – Alexa Kirk Dec 2, 2022 at 20:14

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.

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!

Are you referring to just normal Xcode? Or is there some special version called "XCode: development tools"? Because I only see normal Xcode in the App Store. Granted, this is 4 years into the future from when this answer was posted. – user124384 Apr 22, 2017 at 15:36