$ tar -zxvf gdal-1.8.0.tar.gz $ cd gdal-1.8.0 $ ./configure <略> make[2]: Entering directory `/mnt2/home/endo/tmp/gdal-1.8.0/frmts/png' /bin/sh /home/endo/tmp/gdal-1.8.0/libtool --mode=compile --tag=CXX g++ -g -O2 -Wall -I/home/endo/tmp/gdal-1.8.0/port -I/home/endo/tmp/gdal-1.8.0/gcore -I/home/endo/tmp/gdal-1.8.0/alg -I/home/endo/tmp/gdal-1.8.0/ogr -I/home/endo/tmp/gdal-1.8.0/ogr/ogrsf_frmts -DOGR_ENABLED -I/home/endo/tmp/gdal-1.8.0/port -c -o ../o/pngdataset.lo pngdataset.cpp libtool: compile: g++ -g -O2 -Wall -I/home/endo/tmp/gdal-1.8.0/port -I/home/endo/tmp/gdal-1.8.0/gcore -I/home/endo/tmp/gdal-1.8.0/alg -I/home/endo/tmp/gdal-1.8.0/ogr -I/home/endo/tmp/gdal-1.8.0/ogr/ogrsf_frmts -DOGR_ENABLED -I/home/endo/tmp/gdal-1.8.0/port -c pngdataset.cpp -fPIC -DPIC -o ../o/.libs/pngdataset.o pngdataset.cpp: In function ‘void png_vsi_read_data(png_struct*, png_byte*, png_size_t)’: pngdataset.cpp:1318: error: invalid use of incomplete type ‘struct png_struct_def’ /usr/local/include/png.h:795: error: forward declaration of ‘struct png_struct_def’ pngdataset.cpp: In function ‘void png_vsi_write_data(png_struct*, png_byte*, png_size_t)’: pngdataset.cpp:1333: error: invalid use of incomplete type ‘struct png_struct_def’ /usr/local/include/png.h:795: error: forward declaration of ‘struct png_struct_def’ pngdataset.cpp: In function ‘void png_vsi_flush(png_struct*)’: pngdataset.cpp:1344: error: invalid use of incomplete type ‘struct png_struct_def’ /usr/local/include/png.h:795: error: forward declaration of ‘struct png_struct_def’ pngdataset.cpp: In function ‘void png_gdal_error(png_struct*, const char*)’: pngdataset.cpp:1360: error: invalid use of incomplete type ‘struct png_struct_def’ /usr/local/include/png.h:795: error: forward declaration of ‘struct png_struct_def’ make[2]: *** [../o/pngdataset.lo] Error 1 make[2]: Leaving directory `/mnt2/home/endo/tmp/gdal-1.8.0/frmts/png' make[1]: *** [png-install-obj] Error 2 make[1]: Leaving directory `/mnt2/home/endo/tmp/gdal-1.8.0/frmts' make: *** [frmts-target] Error 2
png_vsi_read_data() ...のように表示されているので、libpng ver.1.2を指定することでmakeできました。
$ ./configure --with-png=/usr/local/include/libpng12 $ make # make install