在Window下编译、安装、使用GDAL

 

1. GDAL简介
G
DAL(主页:
http://www.gdal.org/)是一个操作栅格地理数据的库,由C写成。它包括读取、写入、转换和处理各种栅格数据格式。当前版本的GDAL还包含了OGR库,OGR也是用C写成,是操作矢量地理数据的库,合二为一,GDAL库具备了操作栅格和矢量地理数据的能力。更令人欣喜的是,GDAL是开源的,跨平台的,目前有很多软件都用到了GDAL,如GRASS,QGIS,Google Earth等等。GDAL支持C/C++、VB、Python、Java、C#/.NET、Ruby、Perl,目前能够支持如此多语言的库真的不多。GDAL支持的格式多得惊人,可以看看它主页上列也的Support Formats(http://www.gdal.org/formats_list.html)。

2.下载GDAL
二进制文件(已经编译好的):
http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries

源文件(未编译):http://trac.osgeo.org/gdal/wiki/DownloadSource

上面两链接都列出了各种平台各种版本,你可根据自己的情况下载。撰写此文时,GDAL最新的Release版本是1.6.0。

 

3.编译前配置
         直接下载编译好的二进制文件固然省事,但对于想自己动手进一步了解GDAL,用GDAL进行开发的话,最好还是下载源文件自己编译。编译方法如下:

1)  准备C++编译器,如Visual Studio2005或者2003。

2)  将下载的源码解压到C:/gdal-X.X.X(X.X.X表示版本号,当然你也可以自己命名),把文件放在其它目录也可以。

3)  修改源文件的错误。源文件/frmts/leveller/levellerdataset.cpp的第171行的内容如下:

{ "?, kPI / 180.0, UNITLABEL_DEGREE }

在?号后面加上双引号",改成如下形式:
{ "?", kPI / 180.0, UNITLABEL_DEGREE },
不知为何,1.6.0版本依然没有修改这个BUG。

4)  修改编译安装目录。

用任意文本编辑器,如记事本打开配置文件nmake.opt,找到以下代码:

!IFNDEF GDAL_HOME

GDAL_HOME = "C:/warmerda/bld"

!ENDIF

BINDIR = $(GDAL_HOME)/bin

PLUGINDIR = $(BINDIR)/gdalplugins

PY_INST_DIR = $(GDAL_HOME)/pymod

LIBDIR = $(GDAL_HOME)/lib

INCDIR = $(GDAL_HOME)/include

DATADIR = $(GDAL_HOME)/data

HTMLDIR = $(GDAL_HOME)/html

其中GDAL_HOME = "C:/warmerda/bld"为编译后的安装目录,这里你可以修改你想要的目录,当然也可以不改。

 

4.  添加Python支持
修改PY_INST_DIR = $(GDAL_HOME)/pymod把路径

改成python下的Lib/site-packages文件夹下。PYDIR = "C:/Software/Python24" 改成python的安装路径。

 

5.  添加其它支持
在编译GDAL时,你可以按需要添加其它支持,如ProJ,GeoTiff等等,添加方法只要在nmake.opt找到相关配置节,把前面的“#”去掉,即取消注释,然后修改相关的路径即可。如:

nmake.opt中的PROJ.4 stuff节

# PROJ.4 stuff
# Uncomment the following lines to link PROJ.4 library statically. Otherwise
# it will be linked dynamically during runtime.
# PROJ_FLAGS = -DPROJ_STATIC
# PROJ_INCLUDE = -ID:/GDAL/proj-4.5.0/src
# PROJ_LIBRARY = D:/GDAL/proj-4.5.0/src/proj_i.lib

本节的作用是控制链接方式,默认是注释的,即采用动态链接方式。只需拷贝proj的动态库。若要采用静态链接方式,通过取消gdal的该节注释,并设置proj源码的对应路径即可。静态链接的好处是,加载之初就会判断库的依赖关系,这可以避免采用动态链接库而又缺少依赖库而出现莫名其妙的现象。

 

6.  编译GDAL源码
打开“Visual Studio 2005 命令提示”工具,该工具位于“开始/程序/Microsoft Visual Studio 2005/Visual Studio Tools”。或者直接打开“cmd”窗口,但需要注册VC编译环境,使用如下代码(与你机子的VS安装路径有关):

E:/program files/Microsoft Visual Studio 8/VC/bin/vcvars32.bat

在命令提示符下,用“cd”命令定位到GDAL文件夹(如C:/gdal-1.6.0),输入以下命令:

nmake /f makefile.vc

这里编译要花费一定的时间,请耐心等待。

 

7.  安装GDAL
编译完成后,输入以下命令:

nmake /f makefile.vc install

命令执行后,即在安装目录下创建了bin,data,html文件夹。其中bin中包含了GDAL的核心文件gdalXX.dll(XX为版本号,如为gdal16.dll)。

再输入以下命令:

nmake /f makefile.vc devinstall

命令执行后,即在安装目录下创建include,lib文件夹,这两个文件夹用于开发。 

 

8.  编译C#源码
在命令提示符下输入:

 

cd C:/gdal-1.5.0/swig/csharp
进入C#源文件所在的文件夹,然后再输入:

 

nmake /f makefile.v
编译完成后,将会生成以下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。

 

将以上8个dll文件复制到安装目录的bin文件夹下。

 

9.  使用GDAL
在VS开发中,要先在工具(Tools)-> 选项(Options)-> Projects(vc6.0为Directories)中添加GDAL的lib和include路径,然后把生成的dll文件放在可执行文件所在的文件夹里或直接放在system32文件夹内即可。

如果要用到bin目录中的exe程序,则要创建环境变量,即把GDAL的安装目录的bin路径(如C:/gdal-1.6.0/bin)添加到环境变量中的Path。添加方法为:右击“我的电脑”-> “属性”->”高级”,点击“环境变量”按钮,在系统变量里找到Path,如果没有可添加Path变量,然后把路径添加进去,多个路径以分号分隔。

你可能感兴趣的:(在Window下编译、安装、使用GDAL)