Space Cat, Prince Among Thieves

Fix Missing Headers Compiling on macOS Mojave

Update It would appear that the latest version of Xcode has removed the macOS_SDK_headers_for_macOS_10.14.pkg file. I am currently searching for alternative solutions.

While trying to compile PHP extensions after installing macOS Mojave, I was butting up against a ton of missing header file errors including php.h and zlib.

After several hours of beating my head against my desk and Googling/Stack Overflowing I found the solution.

Ends up you just need to force re-install the header files. Special thanks to @sfdye for the solution!

$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

If you get an error about that file not existing, you probably simply don't have the Xcode command line tools installed which can be remedied simply as follows:

$ xcode-select --install

Comment by: Matthew Koski on

Matthew Koski GravatarThank you so much for this! Google please make this the number one result when someone is having trouble with headers suddenly on Mojave. For me it was ctypes.h.

Comment by: Pooya Raki on

Pooya Raki GravatarThanks so much dude, It worked indeed. Gonna share this on my blog.

Comment by: Pablo on

Pablo GravatarThanks, solved my issues when compiling C++ as well!

Comment by: Ali on

Ali GravatarAfter beating my head to against my desk, walls, laptop, and every single thing around me for a whole week, finally got the answer to the damn problem.

Thank you Jesse. You saved my life.

Comment by: igonejack on

igonejack Gravatar```
cd /Library/Developer/CommandLineTools/Packages
open macOS_SDK_headers_for_macOS_xx.pgk

Try this if you still missing C headers.

Comment by: michel on

michel GravatarI get :
installer: Error - the package path specified was invalid: '/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg'.

whats wrong?

Comment by: Brian Eng on

Brian Eng GravatarI found a solution that works for me. With 10.14.5, the
'/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg' package is removed.

Instead you have to point it to where the headers are in the Xcode package. In my .bash_profile I added this:
export CPATH="/Applications/"

Comment by: mech on

mech Gravatar

Maybe use this?

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib"

Comment by: Ben Smith on

Ben Smith GravatarThanks for posting this!

A gotcha I ran into is xcode-select was already installed but without header files. To correct this remove the old command line tools with:
$ (sudo) rm -rf /Library/Developer/CommandLineTools

Then install command line tooks ala:
$ xcode-select --install

Then finally your header file line.

Comment by: Aaron on

Aaron Gravatar@Brian Eng

I love you, Thank you. This worked for me.

Comment by: Z Knight on

Z Knight GravatarThis file does not exist!
Why is this working for so many people but not me???

$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

installer: Error - the package path specified was invalid: '/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg'.

$ ll /Library/Developer/CommandLineTools/

total 0
drwxr-xr-x 6 root admin 192 Jun 5 01:52 Library
drwxr-xr-x 6 root wheel 192 Jun 5 01:52 SDKs
drwxr-xr-x 7 root admin 224 Oct 19 2018 usr

Comment by: l on

l Gravatar@z Knight I had the same issue with mine - I went to and downloaded the Command Line Tools (macOS 10.14) for Xcode 10.3 June 22, 2019.

This added the .pkg to the file. however it didn't fix the issue I was having (being told I need to install development tools first).

Comment by: Micha on

Micha GravatarWhen using

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target / -allowUntrusted

i get the error:
installer: The install failed (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.)

Mac OS 10.14.6
If I don't add "-allowUntrusted", it states "Certificate used to sign package is not trusted.".

Does anybody else have the same problem?

Comment by: Micha on

Micha Gravatarremoving and reinstalling the CLT solved the issue...

Comment by: Jeff Bonhag on

Jeff Bonhag GravatarI found this page Googling a similar problem for Nokogiri so I thought I would share another hard-won lesson on macOS gembuilding.

On macOS Catalina, while trying to bundle install a Gemfile with a Nokogiri dependency, I kept hitting:

> libiconv is missing. please visit for help with installing dependencies.


brew install libiconv
bundle config build.nokogiri --with-iconv-dir=/usr/local/opt/libiconv
bundle install --path vendor/bundle


Comment by: MacrossEO on

MacrossEO GravatarIm using MacOS 10.14.5

For me, the solution was:

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
cd /Library/Developer/CommandLineTools/Packages/
open macOS_SDK_headers_for_macOS_10.14.pkg


Comment by: bb cody on

bb cody Gravatar4-liner above worked for me, posted by MacrossEO on Nov. 28, 2019
my own context was for local ruby build for heroku app,
in which ruby.h was not found because mac os xcode upgrade
dropped its default install of (some? all?) include files;
in order to get a successful
bundle install
and specifically
sudo gem install nokogiri -v '1.10.4' --source ''

Email address will never be publicly visible.

See my Tweet about comment formatting.