文章是po主參考了很好的GDAL初學者資料,VS2010中項目配置引入GDAL,經過自己的實際操作檢驗歸納
總結的,僅屬於半原創。
首先介紹一下實驗的環境,win7下32位系統,預先配置了VS2013。
步驟一:下載GDAL源碼。
下載地址:http://trac.osgeo.org/gdal/wiki/DownloadSource,進入下面這個頁面:
po主選擇的是最新的2.1.1。這個看大家的喜好問題吧,選1.5左右版本的可能會有一些額外的操作等下一步的時
候講。
步驟二:解壓剛下來的源碼。
我這裏下載的命名是gdal211.zip,可解壓至任何地方。
步驟三:修改源代碼中的錯誤(非必須)。
如果你選擇的和我一樣是最新版的2.1.1,這一步可以直接跳過。
但是根據很好的GDAL初學者資料這裏介紹,若下載的是1.5版本左右的,需要
- 源文件“\\frmts\leveller\levellerdataset.cpp”的第171行的內容如下:
- {"?, kPI / 180.0, UNITLABEL_DEGREE },
- 在?號後面加上雙引呈",改成如下形式:
- { "?", kPI / 180.0, UNITLABEL_DEGREE },
因爲我沒有驗證過其他版本是不是真的出現這個情況,所以這裏還是點明一下,大家自己注意。
步驟四:修改編譯配置文件夾"\\nmake.opt"(非必須)。
找到下面的內容:
- !IFNDEF GDAL_HOME
- GDAL_HOME = "C:\warmerda\bld"
- !ENDIF
這段代碼的意思是默認情況下GDAL會被裝在"C:\warmerda\bld"這個文件夾下,
然後我掃了一下一般的博客會介紹說爲了瞭解實際的編譯過程修改這個路徑,這個看個人吧。
步驟五:編譯源文件。
點擊開始--所有程序--Visual Studio 2013--Visual Studio Tools--VS2013開發人員命令提示,如下圖
所示:
因爲本人解壓的路徑爲"F:\gdal-2.1.1",所以這裏鍵入"cd F:\gdal-2.1.1",進入源文件所在的文件夾,再
鍵入"nmake /f makefile.vc"執行編譯。編譯過程可能需要一些時間。如果前邊的地方有錯,那麼當累計100
個編譯錯誤之後會自動停止。
步驟六:安裝文件。
鍵入"nmake /f makefile.vc install",執行完畢後,配置文件夾下增加了bin,data,及html文件
夾。 (這裏的配置文件夾指的是步驟四里的你修改的路徑,如果沒有改那就是C:\warmerda\bld,下同)。
鍵入"nmake /f makefile.vc devinstall"執行完畢後,配置文件夾下增加了lib,include文件夾。這兩
個文件夾主要用於C及C++的開發。
在"配置文件夾bin內已經生成了gdal15.dll文件,這是GDAL庫的核心,不管採用何種開發方式,最終都由這
個DLL文件來執行實質性的操作。
注意:如果系統是64位的,上面的幾步分別改成:
"nmake /f makefile.vc WIN64=TRUE"
"nmake /f makefile.vcWIN64=TRUE install"
"nmake /f makefile.vc WIN64=TRUE devinstall"
但這個我是從網上的其他博客中看到的,實際沒有嘗試過,不知道是否有效。
步驟七:配置VC++目錄。
在項目上右擊,選擇屬性,找到 配置屬性 - VC++目錄
在包含目錄里加入安裝GDAL的include文件夾,在庫目錄添加lib文件夾。
找到鏈接器 - 輸入,在附加依賴項添加gdal_i.lib。
步驟八:簡單調試。
之後對配置好的環境做一個簡單的調試,輸入以下代碼:
- #include<iostream>
- #include"gdal.h"
- #include"gdal_priv.h"
- using namespace std;
- int main(){
- //cout << "hello world" << endl;
- char* fileName = "D:\\LC81200382013335LGN00_BQA.TIF";
- GDALDataset *poDataset; //GDAL數據集
- GDALAllRegister();
- poDataset = (GDALDataset*)GDALOpen(fileName, GA_ReadOnly);
- if (poDataset == NULL){
- cout << "文件打開錯誤" << endl;
- }
- else{
- cout << "文件打開成功" << endl;
- }
- system("pause");
- }
如果沒有什麼錯誤說明環境已經配好。
注:第一次測試的時候可能會有找不到dll文件的錯誤,兩種解決方案:
方法1、在環境變量 path中加入 ;
方法2、將找不到的dll文件都拷貝到Debug下。