GDAL VS2010 win7(64位)安裝、使用說明(圖文解析)


一、電腦配置及安裝版本

Win 7(64位機)

Visual Studio 2010

GDAL 1.9.2(我也嘗試了最新版GDAL1.11.0,應該同樣可以用的,只是在重新配置時又選用了老一點的版本,資料多一些)

GEOS 3.3.8

二、 GEOS 配置

1) 參考文檔:

2)GEOS與GDAL均屬於靜態庫,只需要配置好,就可以在VS2010調用了。

3)特別注意:請將GEOS文件還有GDAL文件放在英文無空格目錄下。因為這個原因,我嘗試了好多次,先是放在C:\Program Files\GDAL下,提示好多錯誤;所以改為了C:\OGC\L下,在配置GDAL時就不會提醒錯誤了。

4)下載地址:

5)解壓:

三、 GDAL配置

1)參考文檔:

2)首先要修改makefile.opt文件,里面有許多可以修改的地方,根據自己情況配置了。我修改的地方如下:

a)修改GDAL生成文件目錄,第53行:

!IFNDEF GDAL_HOME
GDAL_HOME = "C:\Program Files\GDAL192"

!ENDIF

!IFNDEF BINDIR

BINDIR = $(GDAL_HOME)\bin

!ENDIF

 

 

b)         修改Python安裝目錄,第77行:

!IFNDEF PYDIR

PYDIR   =       "C:\Program Files (x86)\Python27"

!ENDIF

 

c)         修改Java安裝目錄,第88行:

!IFNDEF JAVA_HOME

JAVA_HOME = C:\Program Files (x86)\Java\jdk1.7.0_07

!ENDIF

!IFNDEF ANT_HOME

 

d)         最重要的,將#去掉,配置為64位機下運行,第146行:

# Uncomment the following if you are building for 64-bit windows

# (x64). You'll need to have PATH, INCLUDE and LIB set up for 64-bit

# compiles.

WIN64=YES 得到

 

e)         配置GEOS,第二步配置完GEOS的文件放在C:\OGC\Geos\geos-3.3.8目錄下,注意修改紅顏色的文件,因為GEOS為最新版,所以可能目錄不大一樣;還有就是安裝時,是左斜杠還是右斜杠,糾結了一會,最后如下:

# Uncomment for GEOS support

GEOS_DIR=C:\OGC\Geos\geos-3.3.8

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

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

 

3)         修改完makefile.opt,以管理員身份打開:開始>所有程序>Microsoft Visual Studio 2010>Visual Tools>Visual Studio X64兼容工具命令提示符

a)         cd C:\OGC\GDAL192\gdal-1.9.2(你存放gdal解壓文件的目錄)

b)         nmake /f makefile.vc(配置文件,需要點時間,注意是否提示有問題,如果有問題,重新配置makefile.opt)

c)         nmake /f makefile.vc install(生成bin/html/data文件夾,也可能出現錯誤,同樣重新配makefile.opt)

d)         nmake /f makefile.vc devinstall(生成lib/include文件夾)

e)         nmake /f makefile.vc MSVC_VER=1600 DEBUG=1(Debug調試模式,MSVC_VER對vs2008是1400,對於vs2010是1600)

f)          nmake /f makefile.vc clear (清理文件)

 

四、 GDAL在VS2010下使用

1)新建控制台文件,不要選擇空文件。

 

 

2)         Demo代碼如下:

#include "stdafx.h"
#include<iostream>
#include<string.h>
#include"gdal_priv.h"

//#pragma comment(lib,"C:\\Program Files\\GDAL\\lib\\gdal_i.lib")
#pragma comment(lib,"gdal_i.lib")

using namespace std;

#define CharLength 100

int _tmain(int argc, char ** argv)
{
    GDALDataset* poDataset;
    GDALAllRegister();

    char* FileName;
    FileName=new char[CharLength];
    cout<<"Input File Direction and Name:"<<endl;
    cin>>FileName;

    //poDataset=(GDALDataset*)GDALOpen(argv[1],GA_ReadOnly);
    poDataset=(GDALDataset*)GDALOpen(FileName,GA_ReadOnly);
    if(poDataset!=NULL)
    {
        cout<<"RasterXSize:"<<poDataset->GetRasterXSize()<<endl;
        cout<<"RasterXSize:"<<poDataset->GetRasterYSize()<<endl;

    }

    string a;
    cout<<"A:"<<endl;
    cin>>a;
}

3) 會提示找到函數,需要添加類庫,打開項目屬性>通用屬性>C/C++>目錄,更改包含文件(添加第三步生成的include文件夾)及庫目錄(添加第三步的lib文件夾)。同時在鏈接器>常規>附加庫目錄 添加lib文件夾,在輸入>附加依賴項中添加lib文件夾下gdal_i.lib文件名。如下圖:

4)這個時候調試會出現一大堆問題,這是因為沒有配置64位機的緣故,如圖:

5)  配置64運行環境,生成>配置管理器>活動解決方案平台>新建,添加名為x64的平台。運行提示缺少gdal19.dll

6) 將GDAL bin文件夾下的gdal19.dll 以及C:\OGC\Geos\geos-3.3.8\src目錄下的geos_c.dll復制到程序目錄文件下,運行,結果如下:

五、 總結

實驗中也出現好多問題,自己是新手,想學學GDAL,想實現些算法。GDAL有許多版本,還有Python版,也希望能配置試一試。

這才是第一步,雖然很艱辛。希望以后能取得不錯的成績。

未完,待續!

 

活着意味着做點什么,請好好努力---村上春樹

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM