关于这些库各自是什么请百科,或看官网。
以下下载的版本和配置基于windows7 32bit+vs2010,windows+vs平台下其他的大同小异,别的操作系统的话参考大神李民录博客
GDAL源码剖析(二)之编译说明
GDAL源码剖析(八)之编译GEOS和PROJ4库
本文算是是以上两篇博客在windows7 32bit+vs2010平台下的一个归纳总结
另外,这些GDAL的依赖库的安装,你也可以不全部装,想装哪个就下哪个,编译哪个,GDAL中的便已配置文件nmake.opt就改对应的地方,详细看下面。
1、GDAL源代码下载地址:
ftp://ftp.remotesensing.org/gdal,http://download.osgeo.org/gdal/,(官网:http://www.gdal.org/)
2、GEOS源代码下载地址:
官网下download标签点击一个直接下载,(官网:http://trac.osgeo.org/geos/)
3、PROJ4源代码下载地址:
官网下download标签下source code下点击直接下载,(官网:http://trac.osgeo.org/proj/)
4、HDF4\HDF5!编译过!下载地址:
HDF4.2.6:http://www.hdfgroup.org/ftp/HDF/releases/HDF4.2.6/bin/windows/,
HDF1.8.7:http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.7/bin/windows/,
均点选有win x86(需要64位的选win x64)字样的那个下载,推荐下载这两个版本,更高版本的文件结构改变,后面的配置会不一样哦。。。差那么一点版本也无所谓啦。
下载完了之后解压的地址:
GDAL的可以随便放,GEOS和PROJ4的源码在后面配置GDAL的编译时需要用到的,最好规划好地方,不然电脑文件夹很乱。HDF是编译过的,也最好规划好。
那我是这样放的:
GDAL源码地址:E:\STUDY\学习\GDAL
然后在D盘新建一个文件夹GDAL用来存放编译后的GDAL,里面才建一个supportlibs文件夹存放依赖库
GEOS源码地址:D:\GDAL\supportlibs\geos-3.4.2
PROJ4源码地址:D:\GDAL\supportlibs\proj-4.8.0
HDF4地址:D:\GDAL\supportlibs\HDF4.2.6_win_x86
HDF5地址:D:\GDAL\supportlibs\HDF5-1.8.7_win_x86
1、打开vs2010命令行工具
开始菜单->所有程序->Microsoft Visual Studio 2010->VisualStudio Tools->Visual Studio命令提示(2010),右键管理员打开
2、在这个命令提示工具中进入之前源码存放的位置
方法:以D:\GDAL\supportlibs\geos-3.4.2为例,首先输入D:回车,然后输入cd D:\GDAL\supportlibs\geos-3.4.2回车
编译GEOS和PROJ4要分别进入各自的源代码文件夹,这里只是放在一起讲
3、编译
GEOS:进入源代码目录后,首先输入autogen.bat回车,然后输入nmake /f makefile.vc src_dir回车
PROJ4:进入源代码目录后,直接输入nmake /f makefile.vc install-all回车
1、修改编译配置文件nmake.opt(看着很多代码,其实只要细心很简单,关键要细心)
首先修改编译后GDAL存放路径的配置,修改nmake.opt文件中的54行左右,改为你想要存放的地址,代码如下:
GDAL_HOME= "D:\GDAL"
以下内容参考GDAL源码剖析(二)之编译说明
主要是将之前哪些库的相关路径写到GDAL的编译配置文件nmake.opt中去
1)、集成HDF数据读取
修改nmake.opt文件中的330行左右,代码如下:
#Uncomment thefollowing and update to enable NCSA HDF Release 4 support.
#HDF4_PLUGIN= NO
#HDF4_DIR= D:\warmerda\HDF41r5
#HDF4_LIB= /LIBPATH:$(HDF4_DIR)\lib Ws2_32.lib
#Uncomment thefollowing and update to enable NCSA HDF Release 5 support.
#HDF5_PLUGIN= NO
#HDF5_DIR= c:\warmerda\supportlibs\hdf5\5-164-win
#HDF5_LIB= $(HDF5_DIR)\dll\hdf5dll.lib
修改为下面的代码:
#Uncomment thefollowing and update to enable NCSA HDF Release 4 support.
HDF4_PLUGIN= NO
HDF4_DIR = D:\GDAL\supportlibs\HDF4.2.6_win_x86
HDF4_LIB = $(HDF4_DIR)\dll\hd426m.lib $(HDF4_DIR)\dll\hm426m.lib \
$(HDF4_DIR)\lib\hd426.lib $(HDF4_DIR)\lib\hm426.lib Ws2_32.lib
# Uncomment the following and update to enable NCSA HDF Release 5 support.
HDF5_PLUGIN = NO
HDF5_DIR = D:\GDAL\supportlibs\HDF5-1.8.7_win_x86
HDF5_LIB = $(HDF5_DIR)\dll\hdf5dll.lib
对比代码如下图:(路径以上面为准)
保存。
2)、集成Proj4
同GEOS库的配置方法,在nmake.opt文件中,找到proj4库的位置,大概在352行左右。将下面的三行代码:
#PROJ_FLAGS=-DPROJ_STATIC
#PROJ_INCLUDE=-Id:\projects\proj.4\src
#PROJ_LIBRARY=d:\projects\proj.4\src\proj_i.lib
修改为:
#PROJ_FLAGS=-DPROJ_STATIC
PROJ_INCLUDE= -ID:\GDAL\supportlibs\proj-4.8.0\src
PROJ_LIBRARY = D:\GDAL\supportlibs\proj-4.8.0\src\proj_i.lib
其中第一行表示是否使用静态链接的方式,第二行的路径表示,proj库存放的位置,第三行为proj库的lib文件所在路径。修改后保存即可,对比结果如下图如下:(路径以上面为准)
保存。
3)、集成GEOS
首先使用记事本或者其他的文本编辑器打开GDAL源代码目录下的nmake.opt文件,找到“# Uncomment for GEOS support”这句,大概在405行左右,将下面三行代码:
#GEOS_DIR=C:/warmerda/geos
#GEOS_CFLAGS=-I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/headers -DHAVE_GEOS
#GEOS_LIB =$(GEOS_DIR)/source/geos_c_i.lib
修改为:
GEOS_DIR=D:\GDAL\supportlibs\geos-3.4.2
GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/include -DHAVE_GEOS
GEOS_LIB = $(GEOS_DIR)/src/geos_c_i.lib
对比结果如下图如下:(路径以上面为准)
编译后的GDAL就将会支持图形之间的操作等处理。函数主要是在OGR库中。保存
2、编译GDAL
1)、打开vs2010命令行工具
开始菜单->所有程序->Microsoft Visual Studio 2010->VisualStudio Tools->Visual Studio命令提示(2010),右键管理员打开
2)、在这个命令提示工具中进入之前GDAL源码存放的位置
方法:以E:\STUDY\学习\GDAL\gdal1100\gdal-1.10.0为例,首先输入D:回车,然后输入cd E:\STUDY\学习\GDAL\gdal1100\gdal-1.10.0回车
3)、编译
首先输入nmake /f makefile.vc回车
然后输入nmake /f makefile.vc install回车
最后输入nmake /f makefile.vc devinstall回车
等待编译完成!
3)、拷贝GEOS+PROJ4+HDF的dll文件到GDAL目录
编译后,记得将hdf库中的dll文件夹下的dll文件、PROJ4库源代码src文件夹下的dll文件proj.dll、GEOS库文件夹下src文件夹中geos_c.dll文件,都拷贝到GDAL编译后存放的目录下的bin文件夹中gdal18.dll的同级目录下,否则会提示你找不到proj.dll、geos_c.dll文件。