学习GDAL,学会自己编译GDAL是非常必要的。
不管是采用nmake方式还是工程方式,都需要先下载源码,然后进行才能开始编译。
进入GDAL官网:https://www.gdal.org/ 如下:
解压之后源码文件如下所示:
直接下载别人编译好的比较方便,但是这些编译基本都是默认编译(比方说,对postgis,mysql这些数据库类型的驱动都是不支持的,如果要用到这些,还是需要自己编译的,到底是直接下载别人编译好的,还是自己编译,根据自己实际情况选择)
利用VS的命令提示符来完成,我的是VS2015专业版,这里选择64位本机工具命令提示符(因为OS是Win10 64位)
cd 到解压的源码文件夹,依次输入
nmake -f makefile.vc
nmake -f makefile.vc install
nmake –f makefile.vc devinstall
然而很不幸,编译没有通过,出现了下列问题:
不慌,上面的问题应该属于编译64位GDAL时出现的问题,这里提供两种解决方案:
第一种加上WIN64=1,即像下面这样就行:
第二种在源码中打开namke.opt文件,搜索WIN64,找到下面部分,去掉前面#号:
ps:推荐使用第二种,不用每次都带上WIN64=1.
等一段时间编译完成之后,再次输入剩下两条命令:
nmake -f makefile.vc install
nmake -f makefile.vc devinstall
到此,编译(nmake版)已经成功,在C盘如下目录(C:\warmerda\bld\bin)可以查看到编译结果(源码里面也有编译的结果gdal203.dll,但是其它exe没有):
运行命令提示符,cd到源码文件,执行命令generate_vcxproj.bat 14.0 64 gdal-2.3.1
运行gdal-2.3.1.vcxproj,即可打开VS工程,然后直接点击运行即可。
GDAL是用C++写的,如果在Java中需要用到GDAL,那么我们就需要编译Java版GDAL。
编译Java版GDAL需要用到以下东西:JRE、SWIG、Ant,JRE当然就不用说了,在安装JDK的时候大家肯定已经配置好了,这里不再赘述。
SWIG:http://www.swig.org/download.html 到这里下载解压即可:
然后把swig.exe文件夹所在目录(D:\SoftWare\SWIG\swigwin-3.0.12)添加到环境变量path中:
测试是否安装成功,cmd中输入swig,如果出现下面情况,则表明成功了:
Ant:http://ant.apache.org/ 到这里下载解压即可:
修改如下内容即可:
修改完成后如下所示:
编译流程:参考1.3,先编译c++版GDAL(即上面三个nmake命令),编译完成之后,输入命令:
cd swig (进入到swig文件夹)
nmake -f makefile.vc java (编译Java版GDAL)
除了c盘输出文件夹里面的内容外,源码swig\java文件夹里面也多了gdal.jar和gdalalljni.dll等文件(这些文件在GDAL环境搭建的时候会用到,当然还包括之前的gdal203.dll,肯定也是会用到的):
GDAL不仅支持shp驱动,还支持PostGIS驱动,GDAL支持的矢量驱动可以到这里(https://www.gdal.org/ogr_formats.html)去看,但是默认的编译结果是不支持PostGIS的,需要自己重新编译,下面就详细说明下,如何编译GDAL使其支持PostGIS驱动。
在该文件中找到PostGIS库,修改包含目录和库目录(到PostGIS安装目录底下去看)
修改完成后结果如下:
修改完成nmake.opt文件之后,仿照前面编译(nmake版本)的重新进行编译即可(我用的是Java版本的GDAL,所以按照2中步骤即可编译,获取到支持PostGIS的GDAL)。
编译完成之后,可以利用depends,打开gdal203.dll可以查看到其中的依赖项中包含libpq.dll,则表明编译成功了。
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