Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

gdal库编译并适配至vs2017


(x86位编译           仅作记录    )

首先去gdal官网下载新版本gdal  网址是: http://trac.osgeo.org/gdal/wiki/DownloadSource  (选择一个版本的gdal下载)

然后解压到 … (自己选择)  — 然后打开解压文件  —>

然后找到nmake.opt(在自己解压的文件里)   

用vs2017打开。然后找到   MSVC_VER 和 GDAL_HOME  .  

对照自己的版本选择 MSVC_VER,2017版本    (↓ 位 改成 1910)

继续往下找,找到 GDAL_HOME  

“GDAL_HOME” 的路径 为 后续编译的成果存放地点。( 所以…可以自己改 也可以不改….只要找的到就好)

 之后去打开 vs 2017的 x86 本机工具命令行.   即 vs 自带的 命令行 。   也可以使用  win+r 运行   打开 cmd.   

这个东西

然后通过命令行 进入 gdal (解压文件 )   然后 执行  

nmake -f makefile.vc       (这步主要是编译生成gdal库之类的东西..)

nmake -f makefile.vc install

nmake -f makefile.vc devinstall      (这两步是将编译生成的 bin  include  之类的放到 GADL_HOME 所在的文件下。)

比如我的是…

 

 然后输入  nmake  -f makefile.vc    回车   之后要等一段时间……   (一段时间……)  直到看到没有error 提示..若是出现error ..就比较麻烦了…..             不过我编译的时候  x86的 倒并没有 遇到错误,x64倒是遇到几个。

经过一段时间后 输入 nmake -f makefile.vc install        结束后   输入  nmake -f makefile.vc devinstall    

到此,编译就结束了。接下来开始适配。

打开vs2017  新建一个  c++  空项目。

然后找到    属性..  添加  附加包含目录。

添加include 文件.   若 没有 修改nmake.opt 里面的 GDAL_HOME 的路径 ,则 默认路径是  c:\warmerda\bld

然后 点 链接器   常规  —    附加库目录  lib 那个  

 

然后 点输入    添加 附加依赖项     gdal_i.lib    

   

然后输入以下代码


 

 

 
#include "gdal_priv.h"
#include<iostream>
using namespace std;
int main()
{
	const char* pszFile;
        GDALAllRegister();
        pszFile = "D:/2.jpg";
        GDALDataset *poDataset = (GDALDataset*)GDALOpen(pszFile, GA_ReadOnly);
        GDALRasterBand *poBand = poDataset->GetRasterBand(1);
        int xsize = poBand->GetXSize();
        int ysize = poBand->GetYSize();
        cout << xsize << ysize << endl;
        system("pause");

	return 0;
}                                                       

(代码由学长提供,可以直接复制粘贴使用哦)

开始编译…

如果出现 未找到  gdal202.dll  这个的话。 就把 bin 下面的 gdal202.dll  复制 粘贴到  C盘的  windows/ system32   下。

复制粘贴到 该 目录 下 的 debug 目录下  就可以了。  (只限此项目….)

或者配置环境变量     (如果想在本机不每次编辑都要把gdal202 复制到 debug目录下的话,最好配置一下环境变量)

计算机->属性->高级系统设置->环境变量->编辑 path 

添加:D:\gdal224\bin    如下…   编辑环境变量  

最好把 pszFile  路径设置上 图片  不然会出现 读取内存错误哦。不过那样 也说明已经适配成功了。

就这样了.。  

其他 版本  步骤基本 类似。

 

 

 

 

 

转载自:https://blog.csdn.net/Dragonzxc/article/details/80356883