Linux環(huán)境g++編譯GDAL動態(tài)庫操作方法
一、編譯步驟
解壓下載的GDAL源程序,并在命令行中切換到解壓目錄。
tar -xzvf gdal-2.1.3.tar.gz cd gdal-2.1.3
GDAL可通過configure來實現(xiàn)一些自定義配置,可通過./configure –h命令來查看。--prefix=path表示設(shè)置GDAL的make install后的build目錄,里面有生成的頭文件和動態(tài)庫。輸入如下命令:
./configure --prefix=/root/Test/gdalbuild
這時可以發(fā)現(xiàn)目錄中新生成了GDALmake.opt文件,該文件被包含在GNUmakefile中進行編譯。輸入命令:
make make install
編譯完成后,生成的動態(tài)庫文件就在設(shè)置的目錄下。Include目錄下存放著頭文件,lib目錄存放動態(tài)庫文件,bin目錄存放可執(zhí)行文件如gdalinfo。
二、注意說明
1)注意這里是生成在自己設(shè)置目錄而不是默認(rèn)目錄下,調(diào)用的時候需要設(shè)置環(huán)境變量或者拷貝到系統(tǒng)的lib目錄,或者不用設(shè)置—prefix參數(shù)編譯。
2)configure命令還可以用來設(shè)置debug版本或者release版本,只需要在后面添加--enable-debug參數(shù)就可以控制。默認(rèn)情況下是關(guān)閉的。
--enable-debug enable debugging (disabled by default)
但我發(fā)現(xiàn)GDAL這個說明似乎有問題。我分別編譯了帶這個參數(shù)和不帶這個參數(shù)兩個版本:
帶參數(shù)--enable-debug:
不帶參數(shù)--enable-debug:
可以看到按照說明的release版本反而比debug版本體積大。一般而言,release版本總比debug版本信息小一點,而按照這篇文章《Linux下查看.so和可執(zhí)行文件是否debug編譯》進行檢查是否debug編譯,發(fā)現(xiàn)兩者都是存在debug信息的,release版本比debug版本debug信息少一條:
這樣到底哪個是debug版本反而弄不清楚了,只有留待以后研究了。
以上這篇Linux環(huán)境g++編譯GDAL動態(tài)庫操作方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
c++ lambda捕獲this 導(dǎo)致多線程下類釋放后還在使用的錯誤問題
Lambda表達式是現(xiàn)代C++的一個語法糖,挺好用的。但是如果使用不當(dāng),會導(dǎo)致內(nèi)存泄露或潛在的崩潰問題,這里總結(jié)下c++ lambda捕獲this 導(dǎo)致多線程下類釋放后還在使用的錯誤問題,感興趣的朋友一起看看吧2023-02-02緩存處理函數(shù)storageKeySuffix操作示例解析
這篇文章主要介紹了淺析緩存處理函數(shù)storageKeySuffix操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08解析C語言基于UDP協(xié)議進行Socket編程的要點
這篇文章主要介紹了C語言通過UDP協(xié)議進行Socket編程的要點,文中還提到了相關(guān)ARP與ICMP協(xié)議的作用,需要的朋友可以參考下2016-02-02C++開發(fā)在IOS環(huán)境下運行的LRUCache緩存功能
本文著重介紹如何在XCODE中,通過C++開發(fā)在IOS環(huán)境下運行的緩存功能。算法基于LRU,最近最少使用,需要的朋友可以參考下2012-11-11