不用作任何调整,直接在Linux下编译GDAL2.1.1源码的步骤是:
$ ./configure
$ make
$ make install
非常简单, 这样也能正常生成gdal动态库、静态库,如果想将生成的文件放到指定的目录,则需改第一条命令为:
$ ./configure --prefix=/home/spring/gdal/gdal_lib
这样生成的动态库、静态库在编译的Linux 机子上是能正常使用的,但是将此动态库、静态库放在其它干净的机子上就会提示缺失各种第三方库,如libjpeg、libtiff等错误 ,这是因为有些项没有开启或关闭 导致的,编译时的配置条件改为:
$ ./configure --prefix=/home/spring/gdal/gdal_lib --with-libz=internal --with-liblzma=no --with-pcraster=internal --with-png=internal --with-libtiff=internal --with-geotiff=internal --with-jpeg=internal --with-gif=internal
$ make
$ make install
同时需要调整源码中的文件包括:
(1)、gdal\frmts\gtiff\libtiff\gdal_libtiff_symbol_rename.h
(2)、gdal\frmts\gtiff\libtiff\tif_codec.c
(3)、gdal\frmts\gtiff\libtiff\tif_lzma.c
(4)、gdal\frmts\gtiff\libtiff\tiffiop.h
(5)、gdal\frmts\jpeg2000\jpeg2000dataset.cpp
问题基本上都是来源于gdal/frmts目录中各种图像格式解析的源码,可以在配置时选定支持哪些格式、不支持哪些格式。
执行完./configure指令后,显示的配置信息如下:
编译生成的库如果在其它机子上还有问题可以根据错误提示再次修改配置选项。
以上是在Ubuntu14.04 64位机上编译生成的库,如果想在64位机子上编译32位的库,则可以执行:
$ ./configure --build=i686-pc-linux-gun "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" --prefix=/home/spring/gdal/gdal_lib_32 --with-libz=internal --with-liblzma=no --with-pcraster=internal --with-png=internal --with-libtiff=internal --with-geotiff=internal --with-jpeg=internal --with-gif=internal
$ make
$ make install
修改后的gdal2.1.1源码放在了GitHub上: