Windows 安装 GDAL C++库

文章介绍了在Windows环境下安装GDALC++库的两种方式:一是下载预编译的库,二是自行编译。方法1涉及将下载的库文件添加到系统Path,然后通过示例代码进行测试。方法2则详细说明了从源码编译的过程,包括修改nmake.opt文件以适应不同VS版本,并创建包含DLL、头文件和lib文件的目录结构。
摘要由CSDN通过智能技术生成

1. 方法1:下载配置网友编译的GDAL版本

1.1 下载

CSDN: GDAL,geos联合编译的库,版本为1.8.0,只支持Debug X64。实测VS2013可以用。

1.2 配置

下载后,解压后如下所示:
步骤1:将路径C:\gdal18\bin添加到系统Path变量中,否则编译会提示找不到dll。
在这里插入图片描述
步骤2:
在这里插入图片描述
步骤3:
在这里插入图片描述

1.3 测试

#include "gdal_priv.h"
#include "cpl_conv.h" // for CPLMalloc()

int main()
{
	GDALAllRegister(); // 注册所有GDAL支持的数据格式

	// 读取输入文件
	GDALDataset *poSrcDS = (GDALDataset *)GDALOpen("input.tif", GA_ReadOnly);
	if (poSrcDS == NULL)
	{
		printf("Failed to open input file!\n");
		exit(1);
	}

	// 获取输入文件的基本信息
	int nCols = poSrcDS->GetRasterXSize();
	int nRows = poSrcDS->GetRasterYSize();
	int nBands = poSrcDS->GetRasterCount();

	// 创建输出文件
	GDALDriver *poDriver = GetGDALDriverManager()->GetDriverByName("GTiff");
	GDALDataset *poDstDS = poDriver->Create("output.tif", nCols, nRows, nBands, GDT_Float32, NULL);
	if (poDstDS == NULL)
	{
		printf("Failed to create output file!\n");
		exit(1);
	}

	// 读取和写入数据
	float *pafScanline = (float *)CPLMalloc(sizeof(float)* nCols); // 用于存储一行数据
	for (int iBand = 1; iBand <= nBands; iBand++)
	{
		GDALRasterBand *poSrcBand = poSrcDS->GetRasterBand(iBand);
		GDALRasterBand *poDstBand = poDstDS->GetRasterBand(iBand);
		for (int iRow = 0; iRow < nRows; iRow++)
		{
			poSrcBand->RasterIO(GF_Read, 0, iRow, nCols, 1, pafScanline, nCols, 1, GDT_Float32, 0, 0);
			poDstBand->RasterIO(GF_Write, 0, iRow, nCols, 1, pafScanline, nCols, 1, GDT_Float32, 0, 0);
		}
	}
	CPLFree(pafScanline);

	// 关闭文件
	GDALClose(poSrcDS);
	GDALClose(poDstDS);

	return 0;
}

1.4 缺点

缺点显而易见,可能无法适配自己的开发环境。

2. 方法2:自己编译

源码下载地址:http://download.osgeo.org/gdal
如果需要老版本,可以在old_releases/路径下找到更早的版本,这里我继续下载1.8.0(gdal-1.8.0.tar.gz)进行编译并记录。
步骤1:解压gdal-1.8.0.tar.gz,随便放在一个路径下。比如:C:\gdal-1.8.0
步骤2:修改nmake.opt文件,可在gdal-1.8.0中找到
步骤3:修改MSVC_VER=1800,我的VS是2013版,因此这里改为1800,如果你使用其他版本VS,参照下面各个版本Visual Studio MSVC 编译器版本

Visual Studio 2010 (10.0)         1600
Visual Studio 2012 (11.0)         1700
Visual Studio 2013 (12.0)         1800
Visual Studio 2015 (14.0)         1900
Visual Studio 2017 RTW (15.0)     1910
Visual Studio 2017 version 15.3   1911
Visual Studio 2017 version 15.5   1912
Visual Studio 2017 version 15.6   1913
Visual Studio 2017 version 15.7   1914
Visual Studio 2017 version 15.8   1915
Visual Studio 2017 version 15.9   1916
Visual Studio 2019 RTW (16.0)     1920
Visual Studio 2019 version 16.1   1921
Visual Studio 2019 version 16.2   1922
Visual Studio 2019 version 16.3   1923
Visual Studio 2019 version 16.4   1924
Visual Studio 2019 version 16.5   1925
Visual Studio 2019 version 16.6   1926
Visual Studio 2019 version 16.7   1927
Visual Studio 2019 version 16.8, 16.9       1928
Visual Studio 2019 version 16.10, 16.11     1929

步骤4:修改为GDAL_HOME = “C:\gdald”,可改可不改,我改了也没啥用,并不会生成到指定路径,反而生成在了C:\gdal-1.8.0
步骤5: 修改WIN64=NO,这个默认就是生成WIN32
步骤6:修改DEBUG=1,默认就是生成DEBUG版本,如果需要Release,设置为DEBUG=0
步骤7:管理员模式打开,因为我要编译WIN32版本的,因此选择X86,如果你要生成WIN64,那就选择X64
依次执行命令:

cd C:\gdal-1.8.0
nmake /f makefile.vc

大约五六分钟就编译结束了。
在这里插入图片描述
步骤8:新建如下目录结构
将C:\gdal-1.8.0路径里所有DLL文件拷贝到bin文件夹;将所有.h文件拷贝到include文件夹;将所有lib文件拷贝到lib文件夹。
在这里插入图片描述
步骤8:配置和测试参考方法1

3. 参考

[1] Win10(64位) VS2013配置编译GDAL
[2] windows环境下安装和配置GDAL

编译
[1] VS2017编译配置GDAL——超详细,适合初学者!!!
[2] GDAL-3.4.0库 C++版编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值