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