c++ 编译GDAL库

一、GDAL简介

GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。
OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。
有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的ARCGIS 9.3、10.0、10.1、10.2,Google Earth和跨平台的GRASS GIS系统。利用GDAL/OGR库,可以使基于windows、win7、Linux的地理空间数据管理系统提供对矢量和栅格文件数据的支持。

二 、 GDAL源代码下载

   各个版本的GDAL源代码下载地址:http://trac.osgeo.org/gdal/wiki/DownloadSource

   以1.10.1版本作为示例:

   1.10.1版本源码包下载地址:http://download.osgeo.org/gdal/1.10.1/gdal1101.zip

三、 osgeo源代码下载

      各个版本的osgeo源代码下载地址: http://trac.osgeo.org/geos/

       以3.4.2版本作为示例:

       3.4.2版本源码包下载地址: http://download.osgeo.org/geos/geos-3.4.2.tar.bz2

四、 GDAL + osgeo编译方法

   1.准备材料:
   (1)解压下载后的1.10.1版本GDAL源码压缩包,解压后如下图所示:

(2)解压下载后的3.4.2版本osgeo源码压缩包,解压后如下图所示:
  2.配置相关文件
(1)解决中文路径、中文乱码,需要在下面的文档中加入一句代码:CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");
  • gdalallregister.cpp源文件的GDALAllRegister()函数
  • ogrregisterall.cpp 源文件的OGRAllRegister()函数
(2)为了osgeo编入至GDAL,修改nmake.opt文件

  • #GEOS_DIR = C:/warmerda/geos ---->>“#GEOS_DIR = ”+osgeo源码目录
  • #GEOS_CFLAGS = -1$(GEOS_DIR)/capi-1$(GEOS_DIR)/source/headers - DHAVE_GEOS ------>>
#GEOS_CFLAGS = -1$(GEOS_DIR)/capi-1$(GEOS_DIR)/src
  • #GEOS_LIB = $(GEOS_DIR)/source/geos_c_i.lib ---->>#GEOS_LIB = $(GEOS_DIR)/src/geos_c_i.lib
3.使用如下命令编译osgeo库
DEBUG版本:nmake -f makefile.vc 
Release版本:nmake -f makefile.vc DEBUG=YES

4.依次使用如下命令编译GDAL+osgeo库
(1) 运行命令nmake -f makefile.vc DEBUG = 1 生成DEBUG版本:(Release版本:nmake -f makefile.vc);
(2) 运行命令nmake -f makefile.vc install DEBUG = 1 生成的DEBUG版本复制到C:\warmerda\bld目录下;
(3)运行命令nmake -f makefile.vc devinstallDEBUG = 1生成的DEBUG版本的头文件和lib文件,复制到C:\warmerda\bld目录下。
5.将C:\warmerda\bld\include设置为环境变量,以方便调用GDAL库;

6.如下图,设置vs2008环境
(1)在附加包含目录中加入“C:\warmerda\bld\include”;

(2)在附加依赖项中加入“C:\warmerda\bld\lib\gdal_i.lib”;





没有更多推荐了,返回首页