If all you are looking for are pre-compiled binaries for macOS, you can get them either:

  1. At KyngChaos:
  1. Using Homebrew via brew install gdal

Both include any dependencies necessary (PROJ/GEOS/etc).

But if you need to build GDAL, you have a couple of options.

  1. Homebrew can do it all for you: brew install gdal --HEAD
  1. Follow the BuildingOnUnix instructions.
    • Make sure you have Homebrew installed, which will setup XCode & the build tools for you as well.
    • To easily get all the available dependencies, use Homebrew: brew install gdal —-only-dependencies
    • Clone the GDAL source code from Github
    • Configure & Make following BuildingOnUnix
    • If you want to make sure you're using Homebrew's Python, use ./configure --with-python=/usr/local/opt/python3/bin/python3

If you want to Compile and Debug using XCode, use brew to install gdal, then follow the instructions to setup XCode from here:

!Beware! This information is old and quite possibly broken.

The Framework way

It is possible to compile GDAL in Mac OS, following the instructions from, but some important things must be taken into account. These are the steps I've followed:

My machine: MacBook with Mac OS X 10.6.8 (Snow Leopard). Update: Also working in Mac OS X 10.9 (Mavericks) and 10.10 (Yosemite)

1.- Install UNIX Tools for Mac, needed to compile. You can find them with XCode, as an option during installation

2.- Install GDAL pre-requisites. All of them can be found as dmg images in KyngChaos wiki except one: Expat. You must compile it. So:

2.1 - Install dmg images (these are the versions for Snow Leopard, but use the ones you need from

2.2 - Compile Expat, following these instructions:

3.- All the Frameworks are installed in /Library/Frameworks. Now, you're ready to compile GDAL. The instructions are here: BUT...

The paths shown in the instructions page may not work for you. If you followed the previous steps, the configure line you need to use is:

./configure --with-threads --disable-static --without-grass --with-jasper=/Library/Frameworks/UnixImageIO.framework/unix \
--with-libtiff=/Library/Frameworks/UnixImageIO.framework/unix --with-jpeg=/Library/Frameworks/UnixImageIO.framework/unix \
--with-gif=/Library/Frameworks/UnixImageIO.framework/unix --with-png=/Library/Frameworks/UnixImageIO.framework/unix \
--with-geotiff=/Library/Frameworks/UnixImageIO.framework/unix --with-sqlite3=/Library/Frameworks/SQLite3.framework/unix --with-odbc \
--with-pcraster=internal --with-geos=/Library/Frameworks/GEOS.framework/unix/bin/geos-config --with-static-proj4=/Library/Frameworks/PROJ.framework/unix\
 --with-expat=/usr/local --with-curl --with-python --with-macosx-framework --with-pg=/Library/PostgreSQL/9.1/bin/pg_config \
CFLAGS="-Os -arch i386 -arch x86_64" CXXFLAGS="-Os -arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64"

Add --enable-debug, if you plan to debug GDAL.

WARNING: If you use a GDAL build newer than r23745, you may need to change Specifically, replace this line

LIBTOOL_LINK    =       $(LIBTOOL) --mode=link    --tag=LD


LIBTOOL_LINK    =       $(LIBTOOL) --mode=link

Otherwise, you could get a linker error caused by libtool linking with gcc instead of g++. Related ticket #4557

4.- Execute make & sudo make install.

After that, your GDAL library should be correctly installed in /Library/Frameworks/GDAL.framework. Now you can add /Library/Frameworks/GDAL.framework/unix/bin to your PATH enviroment variable, in order to execute GDAL apps.

Last modified 3 years ago Last modified on Aug 28, 2020, 3:00:18 AM
Note: See TracWiki for help on using the wiki.