GDAL1.6.0在Windows下的编译
GDAL是一个操作各种栅格地理数据格式的库,它使用一种单一的抽象数据模型,满足了其所支持的所有数据格式的应用需求。它除了支持读取、写入、转换、处理各种栅格数据格式外,同时提供操作矢量数据的另一个有名的库OGR,许多知名开源GIS软 件如GRASS、QGIS等都是以GDAL为基础处理底层数据的。目前GDAL的最新版本为GDAL/OGR 1.6.0。本文参考了网上多遍GDAL编译方面的文章,将GDAL1.6.0在Windows下的编译过程记录下来以作收藏。整个编译步骤如下:
1、准备一个C++编译器。建议使用Visual studio2005。
2、下载源代码。
地址:
ftp://ftp.remotesensing.org/gdal/,
http://download.osgeo.org/gdal/,
http://download.osgeo.org/gdal/gdal160.zip
3、把gdal160.zip解压至“C:/gdal-1.6.0”,当然放在其它文件夹也可以。
4、修改源代码中的错误。源文件“C:/gdal-1.6.0/frmts/leveller/levellerdataset.cpp”的第171行的内容如下:
{ "?, kPI / 180.0, UNITLABEL_DEGREE },
在?号后面加上双引呈",改成如下形式:
{ "?", kPI / 180.0, UNITLABEL_DEGREE },
可以使用任何一种文本文件的编辑工具来进行修改,无需重新编译解压后的解决方案。
5、创建安装的目标文件夹“C:/gdal-runtime”,稍后的编译配置中,我们将配置GDAL把编译后将会安装到这个文件夹内。该文件夹可任意指定,GDAL1.6.0编译后的结果保存在该文件夹内。
6、修改编译配置文件夹“C:/gdal-1.6.0/nmake.opt”。以下是第41至第43行的内容:
!IFNDEF GDAL_HOME
GDAL_HOME = "C:/warmerda/bld" //此路径为解压后的默认路径,需要修改成第5步指定的安装路径
!ENDIF
默认的情况下,GDAL将会安装到"C:/warmerda/bld"文件夹内,为了更好地了解安装过程,我们把第42行修改成如下内容:
GDAL_HOME = "C:/gdal-runtime"
此外,还需要将nmake.opt中的第55行PYDIR = "C:/Software/Python24"中的修改成Python的安装路径。
7、编译源文件。
使用“Visual Studio 2005 命令提示”工具来进行,(该工具位于“开始/程序/Microsoft Visual Studio 2005/Visual Studio Tools”内)。
打开“Visual Studio 2005 命令提示”工具,键入"cd C:/gdal-1.6.0",进入源文件所在的文件夹,再键入"nmake /f makefile.vc"执行编译。编译过程可能需要一些时间,主要取决于机器的性能。
如果没有第4步的修改,将会出现大量的编译错误,累积至100个后,VS2005将自动停止编译。
8、安装文件。
键入“nmake /f makefile.vc install”,执行完毕后,"C:/gdal-runtime"文件夹下增加了bin,data,及html文件夹。
键入“nmake /f makefile.vc devinstall”执行完毕后,"C:/gdal-runtime"文件夹下增加了lib,include文件夹。这两个文件夹主要用于C及C++的开发。
在"C:/gdal-runtime/bin"文件夹内已经生成了gdal16.dll文件,这是GDAL库的核心,不管采用何种开发方式,最终都由这个DLL文件来执行实质性的操作。
9、编译C#源文件。
GDAL从1.4.1开始添加了swig,以支持.NET环境下的C#语言。在swig文件夹中包含了C#源代码。键入“cd C:/gdal-1.6.0/swig/csharp”,进入C#源文件所在的文件夹。
键入“nmake /f makefile.vc”, 编译完毕后生成8个DLL文件:gdal_csharp.dll、gdalconst_csharp.dll、ogr_csharp.dll、 osr_csharp.dll和gdal_wrap.dll、gdalconst_wrap.dll、ogr_wrap.dll、 osr_wrap.dll。前面4个文件名中都含有"csharp",用法与另外4个稍有不同,稍后详细讨论。
10、把8个DLL文件复制到安装文件夹"C:/gdal-runtime/bin"。
11、创建环境变量。
把路径C:/gdal-runtime/bin添加到系统变量Path,如果没有该变量,则 应新建一个。如果你使用的是windows2003,添加后不必重启,修改即时生效;如果你不能确定是否已经生效,可以在doc窗口内输入“echo %path%”,如果显示的内容中包含了"C:/gdal-runtime/bin",则表示修改已经生效。如果你还是无法确定,那就重启吧,这是最安全的方式。