Bootstrap

GISAlgorithm学习笔记第1篇:VS2017配置GDAL库

内容摘要:

本文提供在VS2017环境下配置GDAL库的操作。

目录

一、开发环境

二、安装包

三、下载GDAL

四、编译GDAL

五、配置GDAL

六、添加环境变量

七、测试


一、开发环境

1.语言:C++

2.编程环境:Visual Studio2017

3.GDAL版本:2.4.0

二、安装包

1.Visual Studio2017:

https://pan.baidu.com/s/1XDVBU4H8PrNOMcKTCO7RCg?pwd=622d 
提取码:622d

2.GDAL库:GDAL库各版本源代码下载官网:Past Releases — GDAL documentation

本文以下载→编译→安装→配置→添加环境变量为顺序展开介绍。

三、下载GDAL

打开官网,读者可选择自己需要的版本下载。

  • GDAL 2.x 系列: 这是较早版本,但仍然被广泛使用。GDAL 2.2.x 或更新版本通常兼容于Visual Studio 2017。

  • GDAL 3.x 系列: 这是最新的稳定版本,GDAL 3.x 系列引入了许多新特性和改进。大多数3.x版本也支持在Visual Studio 2017下进行编译和使用。

本文以gdal-2.4.0版本为例,下载压缩包,将下载地址修改为自己可以找到的文件路径。

注意:路径要保证全英文无特殊字符,路径名不能太长,否则影响后面的步骤。

 解压文件夹,解压至出现名为“gdal-2.4.0”的文件夹,我们称为源文件夹,修改源文件夹名为gdal(简单全英且无符号),将该文件夹移动至接近根目录或根目录的位置,本文路径为D:\gdal

找到D:\gdal中的nmake.opt文件,用记事本或VS2017打开该文件。

修改文件中以下位置:

  1. 41行:MSVC_VER=1910(1400对应VS2010、1800对应VS2013、1900对应VS2015、1910对应VS2017、1921对应VS2019)
  2. 57行:GDAL_HOME = "D:\gdal\240"(这个是要将编译好的库文件保存的位置,可以根据自己的需要保存到其他位置,本文设置路径为D:\gdal\240
  3. 191行:# WIN64=YES去掉#,修改为WIN64=YES( gdal2.3.x是在184行去掉# )

修改完成后Ctrl+S保存文件。

四、编译GDAL

在Windows的输入框中搜索“适用于VS2017的X64的本机工具命令提示”或“x64 Native Tools Command Prompt for VS 2017”,以管理员身份运行。

注意:一定要以管理员身份运行!!!

输入D:,回车。

输入cd D:\gdal(刚刚修改的源文件夹路径,本文路径为D:\gdal),回车。

如下图所示。

接着输入nmake /f makefile.vc,如下图所示。回车,几分钟后编译完成。

五、安装GDAL

编译完成后,先后输入nmake /f makefile.vc installnmake /f makefile.vc devinstall两条命令,将编译生成的bin、include等放到GADL_HOME所在的文件下。

编译成功后可以看到D:\gdal\240路径下有这些文件夹。

六、配置GDAL

打开VS2017,新建C++项目,点击视图→属性管理器。

找到Microsoft.Cpp.x64,user,右键属性,打开属性页。

在属性页的通用属性中选择VC++目录,设置包含目录库目录,点击包含目录→编辑。

包含目录添加D:\gdal\240\include

库目录中添加D:\gdal\240\lib

点击链接器→输入→附加依赖项,手动输入gdal_i.lib

点击确定,完成配置。

七、添加环境变量

点击计算机→属性→高级系统设置→环境变量,选择系统变量内的path,在其中新建D:\gdal\240\bin,点击确定。

八、测试

输入以下代码,若能够成功输出图片的尺寸,则环境配置成功。

#include "gdal_priv.h"
#include<iostream>  
	using namespace std;
	int main()
	{
		const char* pszFile;
		GDALAllRegister();
		pszFile = "D:\添加你的图片.jpg";//在此处添加你的图片地址
		GDALDataset *poDataset = (GDALDataset*)GDALOpen(pszFile, GA_ReadOnly);
		GDALRasterBand *poBand = poDataset->GetRasterBand(1);
		int xsize = poBand->GetXSize();
		int ysize = poBand->GetYSize();
		cout << xsize << endl;
		cout << ysize << endl;
		system("pause");
		return 0;
}

欢迎交流🌹🌹 

参考文章:

VS2017编译配置GDAL库,详细!_gdal库配置vs2017-CSDN博客

VS2017编译配置GDAL——超详细,适合初学者!!!_gdal3.0 vs2017 编译好的-CSDN博客

;