GDAL2.1.1库在Ubuntu14.04下编译时遇到的问题处理方法
  TEZNKK3IfmPf 2023年11月14日 23 0

不用作任何调整,直接在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上:
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月15日   24   0   0 ubunturedisbash
  TEZNKK3IfmPf   2023年11月14日   24   0   0 ubuntu
  TEZNKK3IfmPf   2023年11月14日   32   0   0 linuxubuntu
  TEZNKK3IfmPf   2024年05月31日   26   0   0 ubuntu
  TEZNKK3IfmPf   2023年11月15日   243   0   0 ubuntu
TEZNKK3IfmPf