GDAL 编译那些事

前言

        学习GDAL,学会自己编译GDAL是非常必要的。

1:默认GDAL编译

1.1 源码下载

不管是采用nmake方式还是工程方式,都需要先下载源码,然后进行才能开始编译。

进入GDAL官网:https://www.gdal.org/ 如下:

GDAL 编译那些事_第1张图片

GDAL 编译那些事_第2张图片

 

解压之后源码文件如下所示:

GDAL 编译那些事_第3张图片

1.2 直接下载别人编译好的

直接下载别人编译好的比较方便,但是这些编译基本都是默认编译(比方说,对postgis,mysql这些数据库类型的驱动都是不支持的,如果要用到这些,还是需要自己编译的,到底是直接下载别人编译好的,还是自己编译,根据自己实际情况选择)

GDAL 编译那些事_第4张图片

GDAL 编译那些事_第5张图片

GDAL 编译那些事_第6张图片

GDAL 编译那些事_第7张图片

 

1.3 编译(nmake)

1.3.1 VS命令提示符

利用VS的命令提示符来完成,我的是VS2015专业版,这里选择64位本机工具命令提示符(因为OS是Win10 64位)

GDAL 编译那些事_第8张图片

1.3.2 开始编译

         cd 到解压的源码文件夹,依次输入

nmake -f makefile.vc

nmake -f makefile.vc install

nmake –f makefile.vc devinstall

GDAL 编译那些事_第9张图片

然而很不幸,编译没有通过,出现了下列问题:

GDAL 编译那些事_第10张图片

不慌,上面的问题应该属于编译64位GDAL时出现的问题,这里提供两种解决方案:

第一种加上WIN64=1,即像下面这样就行:

GDAL 编译那些事_第11张图片

第二种在源码中打开namke.opt文件,搜索WIN64,找到下面部分,去掉前面#号:

GDAL 编译那些事_第12张图片

ps:推荐使用第二种,不用每次都带上WIN64=1.

等一段时间编译完成之后,再次输入剩下两条命令:

         nmake -f makefile.vc install

         nmake -f makefile.vc devinstall

1.3.3 编译结果

到此,编译(nmake版)已经成功,在C盘如下目录(C:\warmerda\bld\bin)可以查看到编译结果(源码里面也有编译的结果gdal203.dll,但是其它exe没有):

GDAL 编译那些事_第13张图片

1.4 编译(工程)

1.4.1 生成VS工程

运行命令提示符,cd到源码文件,执行命令generate_vcxproj.bat 14.0 64 gdal-2.3.1

GDAL 编译那些事_第14张图片

1.4.2 开始编译

运行gdal-2.3.1.vcxproj,即可打开VS工程,然后直接点击运行即可。

GDAL 编译那些事_第15张图片

 

2 编译Java版GDAL

GDAL是用C++写的,如果在Java中需要用到GDAL,那么我们就需要编译Java版GDAL。

2.1 编译前准备

2.1.1 准备内容

编译Java版GDAL需要用到以下东西:JRE、SWIG、Ant,JRE当然就不用说了,在安装JDK的时候大家肯定已经配置好了,这里不再赘述。

2.1.2 SWIG

SWIG:http://www.swig.org/download.html 到这里下载解压即可:

GDAL 编译那些事_第16张图片

然后把swig.exe文件夹所在目录(D:\SoftWare\SWIG\swigwin-3.0.12)添加到环境变量path中:

GDAL 编译那些事_第17张图片

 测试是否安装成功,cmd中输入swig,如果出现下面情况,则表明成功了:

GDAL 编译那些事_第18张图片

2.1.3 Ant

         Ant:http://ant.apache.org/ 到这里下载解压即可:

GDAL 编译那些事_第19张图片

2.1.4 修改namke.opt文件

修改如下内容即可:

GDAL 编译那些事_第20张图片

修改完成后如下所示:

GDAL 编译那些事_第21张图片

2.2 开始编译

         编译流程:参考1.3,先编译c++版GDAL(即上面三个nmake命令),编译完成之后,输入命令:

         cd swig (进入到swig文件夹)

         nmake -f makefile.vc java (编译Java版GDAL)

GDAL 编译那些事_第22张图片

2.3 编译结果

         除了c盘输出文件夹里面的内容外,源码swig\java文件夹里面也多了gdal.jar和gdalalljni.dll等文件(这些文件在GDAL环境搭建的时候会用到,当然还包括之前的gdal203.dll,肯定也是会用到的):

GDAL 编译那些事_第23张图片

3 编译GDAL支持PostGIS

GDAL不仅支持shp驱动,还支持PostGIS驱动,GDAL支持的矢量驱动可以到这里(https://www.gdal.org/ogr_formats.html)去看,但是默认的编译结果是不支持PostGIS的,需要自己重新编译,下面就详细说明下,如何编译GDAL使其支持PostGIS驱动。

3.1 修改nmake.opt文件

         在该文件中找到PostGIS库,修改包含目录和库目录(到PostGIS安装目录底下去看)

GDAL 编译那些事_第24张图片

         修改完成后结果如下:

GDAL 编译那些事_第25张图片

3.2 开始编译

修改完成nmake.opt文件之后,仿照前面编译(nmake版本)的重新进行编译即可(我用的是Java版本的GDAL,所以按照2中步骤即可编译,获取到支持PostGIS的GDAL)。

 

3.3 编译完成

编译完成之后,可以利用depends,打开gdal203.dll可以查看到其中的依赖项中包含libpq.dll,则表明编译成功了。

GDAL 编译那些事_第26张图片

4 参考文献

https://blog.csdn.net/liminlu0314/article/details/6937194

https://blog.csdn.net/jingmiaa/article/details/78111642

https://blog.csdn.net/liminlu0314/article/details/44701507

https://www.cnblogs.com/lisuyun/p/6410393.html

https://blog.csdn.net/cloverwindy/article/details/8658400

 

你可能感兴趣的:(#,愚昧无知的GISer)