天天看點

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檔案來執行實質性的操作。