1. 下載gdal源碼及編譯相關庫安裝:
1.1 gdal源代碼下載
http://trac.osgeo.org/gdal/wiki/DownloadSource
下載指定版本的gdal源碼壓縮包到當前位置:
wget http://download.osgeo.org/gdal/2.2.4/gdal-2.2.4.tar.gz
解壓gdal文件夾到當前路徑下
tar xvf gdal-2.2.4.tar.gz
1.2 安裝編譯需要的庫
進入gdal文件夾
cd gdal-2.2.4
安裝編譯所需要的工具及庫
sudo yum install -y gcc make subversion gcc-c++ sqlite-devel libxml2-devel python-devel numpy swig expat-devel libcurl-devel
此時編譯工具、以及一些外部庫如sqlite,libxml2,libcurl-devel等被安裝。
2. 安裝其他外部庫
2.1 geos
wget http://download.osgeo.org/geos/geos-3.6.2.tar.bz2
tar xjf geos-3.6.2.tar.bz2
cd geos-3.6.2
./configure
sudo make
sudo make install
默認安裝在/usr/local/路徑下,然後將geos相關的文件都拷貝到 /usr/local/lib文件夾下
2.2 proj4
wget http://download.osgeo.org/proj/proj-4.9.3.tar.gz
tar xvf proj-4.9.3.tar.gz
cd proj-4.9.3/
./configure
sudo make
sudo make install
默認安裝在/usr/local/lib路徑下
2.3 libxml2(有可能系統已經安裝)
sudo yum install libxml2
sudo yum install libxml2-devel
安裝完成後,默認會安裝在/usr/lib64/路徑下
2.4 hdf4
https://support.hdfgroup.org/release4/obtainsrc.html#src
安裝說明
https://support.hdfgroup.org/ftp/HDF/HDF_Current/src/unpacked/release_notes/INSTALL
默認情況下庫文件會安裝在安裝文件所在目錄下\hdf4文件夾下,爲了防止找不到安裝後的庫文件路徑,可以在配置時指定安裝路
徑
./configure --prefix=/usr/local
2.5 hdf5
參考hdf4的安裝
2.6 curl安裝
(也可yum install libcurl-devel直接安裝,如果前面步驟已經安裝則此步不再安裝)
安裝curl-7.24.0 [curl-7.24.0]
下載地址:http://curl.haxx.se/download.html
mkdir /usr/lib64/curl7240
./configure --prefix=/usr/local/curl7240
sudo make
sudo make install
3 gdal 安裝
3.1 configure配置
由於gdal有一些依賴庫,以及第三方擴展庫,需要在配置中指明依賴庫或第三方庫的路徑。
./configure --prefix=/usr/local/gdal224 --with-hdf4=/usr/local/hdf4-213 --with-hdf5=/usr/local/hdf5-1101 --with-xml2=/usr/lib64 --with-curl=/usr/local/curl7620/bin/curl-config
注意:curl都是config的路徑,如curl的config文件爲curl-config
關於如何獲取配置參數?
可以打開gdal存放路徑下的configure文件,在m4sh initialization中可以找到對應的參數,然後根據前面編譯的庫,指明庫所在路徑即可。或者輸入命令:./configure --help看看配置選項列表,會有對應的指定庫路徑的選項。
輸入./configure -help命令後顯示:
執行完配置後,在打印日誌的最後會輸出gdal配置的報告,yes表示gdal支持該庫或者功能,no表示不支持,internal表示內置。
由於GDAL對PROJ4庫是動態加載的,所以不需要進行特殊的修改就行,只要將PROJ的動態庫和gdal的動態庫放一起就好了。
注意:
./configure --prefix=/usr/local/gdal224 --with-hdf4=/usr/local/hdf4-213 --with-hdf5=/usr/local/hdf5-1101 --with-xml2=/usr/lib64 --with-geos=/usr/local,
這種情況下geos會出現不支持的情況,
./configure --prefix=/usr/local/gdal224
沒有問題,默認情況下不需要指明geos的路徑,所以把它去掉就可以。
總之,以上配置的目的就是讓gdal找到外部庫的位置就ok了。如果配置了依賴庫的路徑,卻在配置結果中發現沒有被支持,就查看一下路徑是否正確,如果指明上級目錄沒有效,就直接把文件的路徑指明,就像curl一樣,多試幾次。
配置完成後,分別執行如下命令
3.2 編譯
sudo make
編譯,時間會比較久。
如果編譯過程中出現錯誤,記得make clean之後再make
3.3 安裝
sudo make install
官方編譯說明:
http://trac.osgeo.org/gdal/wiki/BuildHints