GDAL是一個操作各種柵格地理資料格式的庫,它支援讀取、寫入、轉換、處理各種柵格資料格式。當然除了操作柵格資料,這個庫還同時包括了操作向量資料的另一個有名的庫OGR,許多知名開源GIS軟體如GRASS、QGIS等都是以GDAL為基礎處理底層資料的。
本文在參考了許多資料(主要:http://www.cnblogs.com/Dormouse/articles/1422906.html)寫的編譯筆記,支援Geos3.0.0,Visual C# 2008, proj4.6.1,Python2.5.
1、下載原始碼。
1) 下載GDAL1.6,解壓到C:/gdal-1.6.0。(http://trac.osgeo.org/gdal/wiki/DownloadSource)
2) 下載Geos3.0.0,(http://trac.osgeo.org/geos/)
3) 下載swigwin-1.3.36,解壓到 C:/gdal-1.6.0/swigwin-1.3.36。 (http://sourceforge.net/project/showfiles.php?group_id=1645)
4) 下載Proj4.6.1 (http://trac.osgeo.org/proj/)
2、編譯GEOS。(http://mateusz.loskot.net/2007/11/26/geos-300rc4-and-visual-c/)
3、編譯Proj。
1) C:/Program Files/Microsoft Visual Studio 8/VC>vcvars32.bat
2)nmake /f makefile.vc all
4、修改GDAL的nmake.opt中如下幾處:
!IFNDEF MSVC_VER
#assume msvc 9.0 #或者在使用nmake命令時直接:nmake -f makefile.vc MSVC_VER=1500
MSVC_VER=1500
!ENDIF
-------------------------------------------
!IFNDEF GDAL_HOME
GDAL_HOME = "C:/gdal-1.6.0"
!ENDIF
BINDIR = $(GDAL_HOME)/bin
PLUGINDIR = $(BINDIR)/gdalplugins
PY_INST_DIR = "C:/Python25/Lib/site-packages"
-------------------------------------------
# Set this to the installed directory containing python. If you don't
# have python just let it point to a directory that does not exist (as now).
!IFNDEF PYDIR
PYDIR = "C:/Python25"
!ENDIF
-------------------------------------------
# Uncomment for GEOS support
GEOS_DIR=C:/gdal-1.6.0/Geos3.0.0
GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/headers -DHAVE_GEOS
GEOS_LIB = $(GEOS_DIR)/source/geos_c_i.lib
-------------------------------------------
另外:有兩個源檔案,由於中西文編碼的問題會導致編譯錯誤(frmts/leveller/levellerdataset.cpp和frmts/rmf/rmfdataset.cpp)。
解決方案:在vs中開啟檔案,然後再用ie開啟檔案,將ie的編碼改成西歐,將網頁中的代碼複製到vs中儲存,就行了。
5、編譯GDAL
1) C:/Program Files/Microsoft Visual Studio 8/VC>vcvars32.bat
2) nmake /f makefile.vc
3) nmake /f makefile.vc install
4) namke /f makefile.vc devinstall
6、將根目錄中產生的gdal16.dll 拷貝到目錄pymod和swip/csharp中。編譯swip,產生gdal-wrap
1) 轉到swip/csharp目錄 執行: nmake /f makefile.vc
7、C#庫包括:
gdal16.dll、gdal_csharp.dll、ogr_csharp.dll、osr_csharp.dll、gdalconst_csharp.dll、gdal_wrap.dll、ogr_wrap.dll、osr_wrap.dll、gdalconst_wrap.dll
、proj.dll、geos_c.dll
1)下載: geos-3.0.0.rc4-makefile-fix.zip
2)nmake /f makefile.vc MSVC_VER=1400