一、电脑配置及安装版本
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
#include
#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 |