gdal(windows编译)

该文详细介绍了如何在Windows上使用cmake编译GDAL的Python版本,包括下载各个依赖库如GDAL3.6.3、GEOS3.11.2、PROJ9.2.0等,然后逐个编译这些依赖库,最后编译GDAL并创建Python的whl包。编译过程中涉及设置预处理器宏、配置编译选项以及整合编译结果到whl包中。

(gdal)windows平台编译

采用cmake编译
编译windows平台下的dll版本
编译python版本的.whl库

一、相关库下载

可根据自己需求进行下载,此处只下载了一些常用库

1、下载最新版本gdal

我下载的是3.6.3
在这里插入图片描述

2、下载最新版本geos

我下载的时候最新的是3.11.2版本
在这里插入图片描述

3、下载最新版本PROJ

我下载的是9.2.0
在这里插入图片描述

4、下载最新版本curl

我下载的版本是8.0.1
在这里插入图片描述

5、下载最新版tiff

我下载的版本是4.5.0
在这里插入图片描述

6、下载最新版libgeotiff

我下载的是1.6.0
在这里插入图片描述

7、下载最新版swig

我下载的是4.1.1
在这里插入图片描述

8、下载最新版本sqlite

我下载的是3.41.1,需要源码、二进制exe文件、二进制dll文件
二进制文件exe
在这里插入图片描述
二进制dll

### 编译GDAL库的步骤 1. **下载GDAL源码** 首先,从GDAL的官方网站或GitHub仓库下载最新的GDAL源代码。 2. **下载依赖库** GDAL依赖于多个第三方库,包括proj、tiff和geotiff。需要分别下载这些库的源代码,并确保它们能够正确编译。 3. **编译依赖库** 使用CMake工具对proj、tiff和geotiff进行编译。在编译proj时需要注意版本号的要求,确保使用兼容的版本。编译完成后,将这些库安装到指定的目录中。 4. **配置CMake** 使用CMake来配置GDAL项目的编译选项。在CMake中设置proj、tiff、geotiff的路径以及`cmake_install_prefix`的位置。建议不要将安装目录设置在C盘,以避免可能的权限问题。 5. **生成Visual Studio项目文件** 使用CMake生成Visual Studio 2022的项目文件。这可以通过选择Visual Studio 2022作为生成器来完成。 6. **编译GDAL库** 打开由CMake生成的Visual Studio 2022解决方案文件,在Release模式和Debug模式下分别执行“Build All”操作,然后执行“Install”目标来安装GDAL库。 7. **配置Visual Studio项目** 创建一个新的Visual Studio 2022空项目,并进行以下配置: - 在项目的属性页中,进入“C/C++ -> 附加包含目录”,添加GDAL的include文件夹路径。 - 进入“链接器 -> 附加库目录”,添加GDAL的lib文件夹路径。 - 在“链接器 -> 输入 -> 附加依赖项”中,添加`gdal.lib`。 - 确保选择正确的配置(如Release)和平台(如x64)。 8. **测试编译结果** 创建一个简单的程序来测试GDAL库是否正确编译并链接到项目中。 ### 示例代码 下面是一个简单的GDAL程序示例,用于打开一个GeoTIFF文件并读取其基本信息: ```cpp #include <gdal_priv.h> #include <iostream> int main() { // 注册所有驱动 GDALAllRegister(); // 打开数据集 GDALDataset *poDataset = (GDALDataset*)GDALOpen("path_to_your_geotiff_file.tif", GA_ReadOnly); if (poDataset == nullptr) { std::cerr << "Failed to open dataset." << std::endl; return 1; } // 输出数据集的基本信息 std::cout << "Driver: " << poDataset->GetDriver()->GetDescription() << "/" << poDataset->GetDriver()->GetMetadataItem(GDAL_DMD_NAME) << std::endl; std::cout << "Size is " << poDataset->GetRasterXSize() << "x" << poDataset->GetRasterYSize() << "x" << poDataset->GetRasterCount() << std::endl; // 清理资源 GDALClose(poDataset); return 0; } ``` 请确保替换 `"path_to_your_geotiff_file.tif"` 为实际的GeoTIFF文件路径。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值