VC++2010中GDAL的安装
准备文件:VS2010(必须滴),GDAL的源码(http://download.osgeo.org/gdal/gdal142.zip,我用的这个版本的)
1、编译GDAL,获取Include和Lib和DLL
1)下载后解压到某目录下,如C:\GDALsrc下。
2)启动cmd,进入VC10的安装目录下,默认为C:\Program Files\Microsoft Visual Studio 10.0\VC\bin,要是你会改目录,找这个东西应该木问题~在此目录下有个文件VCVARS32.BAT,执行一下这个文件,此时配置好了编译的环境
3)然后重新回到C:\GDALsrc下。运行命令nmake /f makefile.vc。编译完成。
4)这一步安装GDAL,用记事本打开文件C:\GDALsrc\nmake.opt,修改GDAL_HOME= (GDAL安装目录,比如说我们安装在C:\GDAL)
5)cmd在C:\GDALsrc下执行nmake /f makefile.vc install,然后是nmake /f makefile.vc devinstall,然后我们需要的东西就安装到了C:\GDAL下了,里面有bin,data,html,lib,include几个文件夹。
2、配置VS的项目
其实也没啥配置的,就是引人lib和include,然后放置好dll。
1)项目的属性-->vc++目录-->包含目录引入C:\GDAL下的include-->库目录引入C:\GDAL下的lib-->确定
2)dll放到跟suo文件一个目录的debug里面……坑爹的vs一个项目有两个debug……囧,自己看好了是哪个啊
3、代码测试:
#include "stdafx.h"
#include "gdal_priv.h"
#include <iostream>
#pragma comment(lib, "gdal_i.lib")
using namespace std;
int main(int argc, char* argv[])
{
if(argc!=2)
{
return 0;
}
GDALDataset *poDataset;
GDALAllRegister();
poDataset = (GDALDataset *) GDALOpen( argv[1], GA_ReadOnly );
if( poDataset != NULL )
{
cout<<"RasterXSize:"<<poDataset->GetRasterXSize()<<endl;
cout<<"RasterYSize:"<<poDataset->GetRasterYSize()<<endl;
cout<<"RasterCount:"<<poDataset->GetRasterCount()<<endl;
}
return 0;
}
编译之后,假定生成的程序名为Test.exe,在命令行下test.exe aa.jpg,将打印出图片的长宽和图层数,如:
C:\>Test aa.JPG
RasterXSize:1200
RasterYSize:900
RasterCount:3
注意:
网上的代码一般没有#pragma comment这一行,如果没有的话会报
error LNK2001: 无法解析的外部符号 "public: virtual char const * __thiscall GDALMajorObject::GetDescription(void)const " ([email protected]@@UBEPBDXZ)
。。。。。。一堆错误
貌似还有个是设置项目的属性配置这个lib,但是我不会,谁知道的吱一声吧,3Q