Building GDAL 1.9.x with ESRI FileGDB support on OS X Lion
- Download the SDK from ESRI's website http://resources.arcgis.com/content/geodatabases/10.0/file-gdb-api
- Extract the SDK, and put the contents of the directory in a known location, I used
~/local/filegdb. Here's an example path to one of the files:
- I use
~/local/filegdbso it can stay isolated in it's own place. You can put it anywhere, but the next few steps might be different.
- Go into the directory containing the FileGDB SDK, e.g.
- ESRI built these dylib's using
@rpath's, so to avoid needing to mess with
DYLD_LIBRARY_PATH, I updated the
install_name_tool. There might be a more elegant way to handle this. If so, comments are welcome!
- Here are the commands I used to patch the dylibs, this is not required if you want to use
install_name_tool -id "$(pwd)/lib/libFileGDBAPI.dylib" ./lib/libFileGDBAPI.dylib install_name_tool -change "@rpath/libfgdbunixrtl.dylib" "$(pwd)/lib/libfgdbunixrtl.dylib" ./lib/libFileGDBAPI.dylib install_name_tool -id "$(pwd)/lib/libfgdbunixrtl.dylib" ./lib/libfgdbunixrtl.dylib
- To verify the paths, use
otool -L lib/libFileGDBAPI.dyliband
otool -L lib/libfgdbunixrtl.dyliband make sure the paths are correct
- We need to make some changes to the
configure.inscript for GDAL now, since the FileGDB config script hasn't yet been updated for the OSX FileGDB SDK
- In the GDAL source root, edit the
configure.inand replace it with:
- In the GDAL source root, run
./autogen.shto re-create the
- Now run the
configurescript has many options, here is the configure line I use for my custom build: https://gist.github.com/2005091, if you have other GDAL builds on your machine (e.g. homebrew) that you don't want to interfere with, I recommend at least using
--prefix="$HOME/local"or some other place on your machine besides
/usr/local(default for homebrew) or
/opt/local(default for MacPorts).
- If it worked properly, you should see in the output of
yesfor FileGDB support
- Build it:
`make && make install`
- If everything worked, it's time to test it out! Here's a test file: http://trac.osgeo.org/gdal/raw-attachment/wiki/FileGDB/test_fgdb.gdb.zip
which ogr2ogr # make sure it's the correct ogr2ogr first ogrinfo --formats # list out the formats ogrinfo ~/Downloads/test_fgdb.gdb #convert FileGDB directly to PostGIS ogr2ogr -f "PostgreSQL" PG:"dbname='somedatabase' host='localhost' port='5432'" ~/Downloads/test_fgdb.gdb
Using this build of GDAL in a KyngChaos build of QGIS
# save your current GDAL so you can put it back if you want cp /Library/Frameworks/GDAL.framework/Versions/1.8/GDAL /Library/Frameworks/GDAL.framework/Versions/1.8/GDAL_orig # symlink the custom GDAL build to the place QGIS looks rm /Library/Frameworks/GDAL.framework/Versions/1.8/GDAL ln -s ~/local/lib/libgdal.dylib /Library/Frameworks/GDAL.framework/Versions/1.8/GDAL
Note: to select one in QGIS, go to Add Vector Layer -> select the Directory radio button -> Select your .gdb directory
I had some problems opening certain FileGDB's. I believe the API only supports FileGDB's created with ArcGIS 10.0+.
More info: http://trac.osgeo.org/gdal/wiki/FileGDB
@zhm Thanks for the quick reply. I rebuilt GDAL, this time taking your advice to not mess with
DYLD_LIBRARY_PATHand set filegdb_api paths explicitly. Now it works! Thanks for your help.