end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

libpng-1.5.1だとGDAL v1.8.0のmakeでerror

$ 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