首先介绍一下实验的环境,win7下32位系统,预先配置了VS2013。
步骤一:下载GDAL源码。
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 },
因为我没有验证过其他版本是不是真的出现这个情况,所以这里还是点明一下,大家自己注意。
。
找到下面的内容:
!IFNDEF GDAL_HOME
GDAL_HOME = "C:\warmerda\bld"
!ENDIF
这段代码的意思是默认情况下GDAL会被装在"C:\warmerda\bld"这个文件夹下,
然后我扫了一下一般的博客会介绍说为了了解实际的编译过程修改这个路径,这个看个人吧。
步骤五:编译源文件。
点击开始--所有程序--Visual Studio 2013--Visual Studio Tools--VS2013开发人员命令提示,如下图
所示:
键入"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"
WIN64=TRUE install"
WIN64=TRUE devinstall"
但这个我是从网上的其他博客中看到的,实际没有尝试过,不知道是否有效。
步骤七:配置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下。