GDAL+GEOS+PROJ4+HDF4+HDF5的编译安装

关于这些库各自是什么请百科,或看官网。

以下下载的版本和配置基于windows7 32bit+vs2010,windows+vs平台下其他的大同小异,别的操作系统的话参考大神李民录博客

GDAL源码剖析(二)之编译说明

GDAL源码剖析(八)之编译GEOSPROJ4

本文算是是以上两篇博客在windows7 32bit+vs2010平台下的一个归纳总结

另外,这些GDAL的依赖库的安装,你也可以不全部装,想装哪个就下哪个,编译哪个,GDAL中的便已配置文件nmake.opt就改对应的地方,详细看下面。


一、下载并解压(括号内附上各库官网)


1、GDAL源代码下载地址:

ftp://ftp.remotesensing.org/gdalhttp://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        

               

二、编译支持库GEOS+PROJ4


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回车


三、编译GDAL


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.dllGEOS库文件夹下src文件夹中geos_c.dll文件,都拷贝到GDAL编译后存放的目录下的bin文件夹中gdal18.dll的同级目录下,否则会提示你找不到proj.dllgeos_c.dll文件。

 

 

你可能感兴趣的:(GDAL)