Linux環境用g++編譯GDAL動態庫的詳細步驟和一些問題 ...
一、編譯步驟
解壓下載的GDAL源程式,併在命令行中切換到解壓目錄。
tar -xzvf gdal-2.1.3.tar.gz
cd gdal-2.1.3
GDAL可通過configure來實現一些自定義配置,可通過./configure –h命令來查看。--prefix=path表示設置GDAL的make install後的build目錄,裡面有生成的頭文件和動態庫。輸入如下命令:
./configure --prefix=/root/Test/gdalbuild
這時可以發現目錄中新生成了GDALmake.opt文件,該文件被包含在GNUmakefile中進行編譯。輸入命令:
make
make install
編譯完成後,生成的動態庫文件就在設置的目錄下。Include目錄下存放著頭文件,lib目錄存放動態庫文件,bin目錄存放可執行文件如gdalinfo。
二、註意說明
1)註意這裡是生成在自己設置目錄而不是預設目錄下,調用的時候需要設置環境變數或者拷貝到系統的lib目錄,或者不用設置—prefix參數編譯。
2)configure命令還可以用來設置debug版本或者release版本,只需要在後面添加--enable-debug參數就可以控制。預設情況下是關閉的。
--enable-debug enable debugging (disabled by default)
但我發現GDAL這個說明似乎有問題。我分別編譯了帶這個參數和不帶這個參數兩個版本:
帶參數--enable-debug:
不帶參數--enable-debug:
可以看到按照說明的release版本反而比debug版本體積大。一般而言,release版本總比debug版本信息小一點,而按照這篇文章《Linux下查看.so和可執行文件是否debug編譯》進行檢查是否debug編譯,發現兩者都是存在debug信息的,release版本比debug版本debug信息少一條:
這樣到底哪個是debug版本反而弄不清楚了,只有留待以後研究了。