(x86位编译 x64一样 仅作记录 )
首先去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倒是遇到几个。
ps: 最近编译 64位,发现gdal3.x 会报错,LINK xxx 这时 需要将 nmake.opt 中 大概180-190+ 行,有一个 #win64=YES , 读一下那段代码就可以发现了, 将 # 去掉就可以了。 或者 下一个 gdal2.3.x 去掉 184行 # , 也可以的。19-6-1
经过一段时间后 输入 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
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 路径设置上 图片 不然会出现 读取内存错误哦。不过那样 也说明已经适配成功了。
就这样了.。
其他版本 步骤基本类似。