GDAL+GEOS+PROJ4+HDF4+HDF5的編譯安裝

關於這些庫各自是什麼請百科,或看官網。

以下下載的版本和配置基於windows7 32bit+vs2010,windows+vs平臺下其他的大同小異,別的操作系統的話參考大神李民錄博客

GDAL源碼剖析(二)之編譯說明

GDAL源碼剖析(八)之編譯GEOSPROJ4

本文算是是以上兩篇博客在windows7 32bit+vs2010平臺下的一個歸納總結

另外,這些GDAL的依賴庫的安裝,你也可以不全部裝,想裝哪個就下哪個,編譯哪個,GDAL中的便已配置文件nmake.opt就改對應的地方,詳細看下面。


一、下載並解壓(括號內附上各庫官網)


1、GDAL源代碼下載地址:

ftp://ftp.remotesensing.org/gdalhttp://download.osgeo.org/gdal/,(官網:http://www.gdal.org/

2、GEOS源代碼下載地址:

官網下download標籤點擊一個直接下載,(官網:http://trac.osgeo.org/geos/

3、PROJ4源代碼下載地址:

官網下download標籤下source code下點擊直接下載,(官網:http://trac.osgeo.org/proj/

4、HDF4\HDF5!編譯過!下載地址:

HDF4.2.6:http://www.hdfgroup.org/ftp/HDF/releases/HDF4.2.6/bin/windows/

HDF1.8.7:http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.7/bin/windows/

均點選有win x86(需要64位的選win x64)字樣的那個下載,推薦下載這兩個版本,更高版本的文件結構改變,後面的配置會不一樣哦。。。差那麼一點版本也無所謂啦。

下載完了之後解壓的地址:

GDAL的可以隨便放,GEOS和PROJ4的源碼在後面配置GDAL的編譯時需要用到的,最好規劃好地方,不然電腦文件夾很亂。HDF是編譯過的,也最好規劃好。

那我是這樣放的:

GDAL源碼地址:E:\STUDY\學習\GDAL

然後在D盤新建一個文件夾GDAL用來存放編譯後的GDAL,裏面才建一個supportlibs文件夾存放依賴庫

GEOS源碼地址:D:\GDAL\supportlibs\geos-3.4.2

PROJ4源碼地址:D:\GDAL\supportlibs\proj-4.8.0

HDF4地址:D:\GDAL\supportlibs\HDF4.2.6_win_x86

HDF5地址:D:\GDAL\supportlibs\HDF5-1.8.7_win_x86        

               

二、編譯支持庫GEOS+PROJ4


1、打開vs2010命令行工具

開始菜單->所有程序->Microsoft Visual Studio 2010->VisualStudio Tools->Visual Studio命令提示(2010),右鍵管理員打開

2、在這個命令提示工具中進入之前源碼存放的位置

方法:以D:\GDAL\supportlibs\geos-3.4.2爲例,首先輸入D回車,然後輸入cd D:\GDAL\supportlibs\geos-3.4.2回車

編譯GEOS和PROJ4要分別進入各自的源代碼文件夾,這裏只是放在一起講

3、編譯

GEOS:進入源代碼目錄後,首先輸入autogen.bat回車,然後輸入nmake /f makefile.vc src_dir回車

PROJ4:進入源代碼目錄後,直接輸入nmake /f makefile.vc install-all回車


三、編譯GDAL


1、修改編譯配置文件nmake.opt(看着很多代碼,其實只要細心很簡單,關鍵要細心)

首先修改編譯後GDAL存放路徑的配置,修改nmake.opt文件中的54行左右,改爲你想要存放的地址,代碼如下:

GDAL_HOME= "D:\GDAL"

 

以下內容參考GDAL源碼剖析(二)之編譯說明

主要是將之前哪些庫的相關路徑寫到GDAL的編譯配置文件nmake.opt中去

1)、集成HDF數據讀取

修改nmake.opt文件中的330行左右,代碼如下:

#Uncomment thefollowing and update to enable NCSA HDF Release 4 support.

#HDF4_PLUGIN= NO

#HDF4_DIR=       D:\warmerda\HDF41r5

#HDF4_LIB=        /LIBPATH:$(HDF4_DIR)\lib Ws2_32.lib

 

#Uncomment thefollowing and update to enable NCSA HDF Release 5 support.

#HDF5_PLUGIN= NO

#HDF5_DIR=       c:\warmerda\supportlibs\hdf5\5-164-win

#HDF5_LIB=        $(HDF5_DIR)\dll\hdf5dll.lib

修改爲下面的代碼:

#Uncomment thefollowing and update to enable NCSA HDF Release 4 support.

HDF4_PLUGIN= NO

HDF4_DIR = D:\GDAL\supportlibs\HDF4.2.6_win_x86

HDF4_LIB = $(HDF4_DIR)\dll\hd426m.lib $(HDF4_DIR)\dll\hm426m.lib \

$(HDF4_DIR)\lib\hd426.lib $(HDF4_DIR)\lib\hm426.lib Ws2_32.lib



# Uncomment the following and update to enable NCSA HDF Release 5 support.

HDF5_PLUGIN = NO

HDF5_DIR = D:\GDAL\supportlibs\HDF5-1.8.7_win_x86

HDF5_LIB = $(HDF5_DIR)\dll\hdf5dll.lib

對比代碼如下圖:(路徑以上面爲準)

保存。

2)、集成Proj4

GEOS庫的配置方法,在nmake.opt文件中,找到proj4庫的位置,大概在352行左右。將下面的三行代碼:

#PROJ_FLAGS=-DPROJ_STATIC

#PROJ_INCLUDE=-Id:\projects\proj.4\src

#PROJ_LIBRARY=d:\projects\proj.4\src\proj_i.lib

修改爲:

#PROJ_FLAGS=-DPROJ_STATIC

PROJ_INCLUDE= -ID:\GDAL\supportlibs\proj-4.8.0\src

PROJ_LIBRARY = D:\GDAL\supportlibs\proj-4.8.0\src\proj_i.lib

其中第一行表示是否使用靜態鏈接的方式,第二行的路徑表示,proj庫存放的位置,第三行爲proj庫的lib文件所在路徑。修改後保存即可,對比結果如下圖如下:(路徑以上面爲準)

保存。

3)、集成GEOS

首先使用記事本或者其他的文本編輯器打開GDAL源代碼目錄下的nmake.opt文件,找到“# Uncomment for GEOS support”這句,大概在405行左右,將下面三行代碼:

#GEOS_DIR=C:/warmerda/geos

#GEOS_CFLAGS=-I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/headers -DHAVE_GEOS

#GEOS_LIB    =$(GEOS_DIR)/source/geos_c_i.lib

修改爲:

GEOS_DIR=D:\GDAL\supportlibs\geos-3.4.2

GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/include -DHAVE_GEOS

GEOS_LIB     = $(GEOS_DIR)/src/geos_c_i.lib

對比結果如下圖如下:(路徑以上面爲準)

編譯後的GDAL就將會支持圖形之間的操作等處理。函數主要是在OGR庫中。保存

2、編譯GDAL

1)、打開vs2010命令行工具

開始菜單->所有程序->Microsoft Visual Studio 2010->VisualStudio Tools->Visual Studio命令提示(2010),右鍵管理員打開

2)、在這個命令提示工具中進入之前GDAL源碼存放的位置

方法:以E:\STUDY\學習\GDAL\gdal1100\gdal-1.10.0爲例,首先輸入D:回車,然後輸入cd E:\STUDY\學習\GDAL\gdal1100\gdal-1.10.0回車

3)、編譯

首先輸入nmake /f makefile.vc回車

然後輸入nmake /f makefile.vc install回車

最後輸入nmake /f makefile.vc devinstall回車

等待編譯完成!

3)、拷貝GEOS+PROJ4+HDF的dll文件到GDAL目錄

編譯後,記得hdf庫中的dll文件夾下的dll文件、PROJ4庫源代碼src文件夾下的dll文件proj.dllGEOS庫文件夾下src文件夾中geos_c.dll文件,都拷貝到GDAL編譯後存放的目錄下的bin文件夾中gdal18.dll的同級目錄下,否則會提示你找不到proj.dllgeos_c.dll文件。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章