I'm trying to build latest SVN trunk with Python bindings on Mac OS X + GCC 4.0.1. Everything (GDAL + utilities) builds with success, but the Python bindings that report undefined references in libcurl. Here are all steps I've taken:
- Compilation goes to swig and stops with errors
(cd swig; make build)
for dir in python ; do (cd $dir; make build) || exit; done
python setup.py build
running build
running build_py
creating build
creating build/lib.macosx-10.3-fat-2.5
copying gdal.py -> build/lib.macosx-10.3-fat-2.5
copying ogr.py -> build/lib.macosx-10.3-fat-2.5
copying osr.py -> build/lib.macosx-10.3-fat-2.5
copying gdalconst.py -> build/lib.macosx-10.3-fat-2.5
creating build/lib.macosx-10.3-fat-2.5/osgeo
copying osgeo/__init__.py -> build/lib.macosx-10.3-fat-2.5/osgeo
copying osgeo/gdal.py -> build/lib.macosx-10.3-fat-2.5/osgeo
copying osgeo/gdal_array.py -> build/lib.macosx-10.3-fat-2.5/osgeo
copying osgeo/gdalconst.py -> build/lib.macosx-10.3-fat-2.5/osgeo
copying osgeo/gdalnumeric.py -> build/lib.macosx-10.3-fat-2.5/osgeo
copying osgeo/ogr.py -> build/lib.macosx-10.3-fat-2.5/osgeo
copying osgeo/osr.py -> build/lib.macosx-10.3-fat-2.5/osgeo
running build_ext
building 'osgeo._gdal' extension
creating build/temp.macosx-10.3-fat-2.5
creating build/temp.macosx-10.3-fat-2.5/extensions
gcc -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -O3 -I../../port -I../../gcore -I../../alg -I../../ogr/ -I/usr/local/include -I/usr/include -I/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -I. -I/Users/mloskot/dev/gdal/_svn/trunk/gdal/include -c extensions/gdal_wrap.cpp -o build/temp.macosx-10.3-fat-2.5/extensions/gdal_wrap.o
g++ -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -g -bundle -undefined dynamic_lookup build/temp.macosx-10.3-fat-2.5/extensions/gdal_wrap.o -L../../.libs -L../../ -L/usr/local/lib -L/usr/lib -L/Users/mloskot/dev/gdal/_svn/trunk/gdal/lib -lgdal -o build/lib.macosx-10.3-fat-2.5/osgeo/_gdal.so
/usr/bin/ld: warning -L: directory name (../../.libs) does not exist
/usr/bin/ld: warning -L: directory name (/Users/mloskot/dev/gdal/_svn/trunk/gdal/lib) does not exist
/usr/bin/ld: for architecture ppc
/usr/bin/ld: warning ../..//libgdal.dylib cputype (7, architecture i386) does not match cputype (18) for specified -arch flag: ppc (file not loaded)
/usr/bin/ld: warning -L: directory name (../../.libs) does not exist
/usr/bin/ld: warning -L: directory name (/Users/mloskot/dev/gdal/_svn/trunk/gdal/lib) does not exist
/usr/bin/ld: for architecture i386
/usr/bin/ld: warning can't open dynamic library: /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libcurl.4.dylib referenced from: ../..//libgdal.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2)
/usr/bin/ld: Undefined symbols:
_curl_easy_cleanup referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_easy_getinfo referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_easy_init referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_easy_perform referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_easy_setopt referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_slist_append referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_slist_free_all referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_multi_add_handle referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_multi_cleanup referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_multi_fdset referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_multi_info_read referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_multi_init referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_multi_perform referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
_curl_multi_remove_handle referenced from libgdal expected to be defined in /usr/lib/libcurl.4.dylib
collect2: ld returned 1 exit status
lipo: can't open input file: /var/tmp//ccCeg0By.out (No such file or directory)
error: command 'g++' failed with exit status 1
make[2]: *** [build] Error 1
make[1]: *** [build] Error 2
make: *** [swig-modules] Error 2
- libgdal and ogrinfo can find and link to libcurl
~/dev/gdal/_svn/trunk/gdal $ otool -L libgdal.dylib|grep curl
/usr/lib/libcurl.4.dylib (compatibility version 5.0.0, current version 5.0.0)
~/dev/gdal/_svn/trunk/gdal $ otool -L ./apps/ogrinfo|grep curl
/usr/lib/libcurl.4.dylib (compatibility version 5.0.0, current version 5.0.0)
I don't understand it what's the distinction between libcurl requirements for GDAL + utilities and Python bindings. If the former can find necessary definitions, why Python bindings can not? Do they need anything extra?