VS2005编译GEOS GDAL
VS2005 下进行 GEOS编译:
GEOS(Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS). As such, it aims to contain the complete functionality of JTS in C++.
编译步骤:
1、下载geos-3.0.0.tar.bz2 。下载地址为http://download.osgeo.org/geos/,进入网页后选择文件geos-3.0.0.tar.bz2下载到本机,例如E:\Software\GEOS\geos-3.0.0。
2、下载修正文件 geos-3.0.0.rc4-makefile-fix.zip。并将里面的两个文件dirlist.mk和Makefile.vc解压到E:\Software\GEOS\geos-3.0.0\source中,并覆盖原来的文件。注:如果没有这一步的话,会出现编译错误。
3、编译源文件。使用“Visual Studio 2005 命令提示”工具来进行,(该工具位于“开始\程序\Microsoft Visual Studio 2005\Visual Studio Tools”内)。打开“Visual Studio 2005 命令提示”工具,键入"cdE:\Software\GEOS\geos-3.0.0\source ",进入源文件所在的文件夹,再键入"nmake /f makefile.vc"执行编译。编译过程可能需要一些时间,主要取决于机器的性能。
4、编译完成。编译之后的geos.lib、geos_i.lib、geos_c_i.lib、geos.dll、geos_c.dll的文件被放在E:\Software\GEOS\geos-3.0.0\source中。
参考:http://wiki.woodpecker.org.cn/moin/lilin/geos-introduce
GDAL编译:
1、准备一个C++编译器。建议使用Visual studio2005。
2、下载源代码。
地址:http://download.osgeo.org/gdal/gdal150.zip。
3、把gdal150.zip解压至“C:\gdal-1.5.0”,当然放在其它文件夹也可以。
4、修改源代码中的错误。源文件“C:\gdal-1.5.0\frmts\leveller\levellerdataset.cpp”的第171行的内容如下:
{ "?, kPI / 180.0, UNITLABEL_DEGREE },
在?号后面加上双引呈",改成如下形式:
{ "?", kPI / 180.0, UNITLABEL_DEGREE },
你可以使用任何一种文本文件的编辑工具来进行修改。笔者尝试过下载GDAL1.52的版本,存在同样的问题,真想不到GDAL库也会犯如此低级的错误。
5、创建安装的目标文件夹“C:\gdal-runtime”,稍后的编译配置中,我们将配置GDAL把编译后将会安装到这个文件夹内。
6、修改编译配置文件夹“C:\gdal-1.5.0\nmake.opt”。以下是第41至第43行的内容:
!IFNDEF GDAL_HOME
GDAL_HOME = "C:\warmerda\bld"
!ENDIF
默认的情况下,GDAL将会安装到"C:\warmerda\bld"文件夹内,为了更好地了解安装过程,我们把第42行修改成如下内容:
GDAL_HOME = "C:\gdal-runtime"
7、编译源文件。使用“Visual Studio 2005 命令提示”工具来进行,(该工具位于“开始\程序\Microsoft Visual Studio 2005\Visual Studio Tools”内)。
打开“Visual Studio 2005 命令提示”工具,键入"cd C:\gdal-1.5.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"文件夹内已经生成了gdal15.dll文件,这是GDAL库的核心,不管采用何种开发方式,最终都由这个DLL文件来执行实质性的操作。