Windows 安装 GDAL 并配置 Rust-GDAL 开发环境-1
Rust-GDAL 是 Rust 语言的 GDAL(Geospatial Data Abstraction Library) 绑定库,用于处理地理数据。由于 GDAL 依赖较多,在 Windows 上的安装相对复杂,本文档将介绍如何安装 GDAL 并配置 Rust-GDAL 的开发环境。
1. 检查 Rust 版本
首先,确认当前 Windows 系统上安装的 Rust 版本及工具链类型。可以使用 rustup show 命令查询:
rustup show
如果输出如下:
stable-x86_64-pc-windows-gnu
stable-x86_64-pc-windows-msvc
表示你的 Rust 版本支持 GNU 工具链 和 MSVC 工具链。Rust 在 Windows 上有两个主要的工具链:
**stable-x86_64-pc-windows-gnu**(GNU 工具链)- 使用 MinGW-w64(GNU 编译器集合 GCC) 进行编译。
- 需要 MinGW-w64 作为编译环境(可能需要手动安装)。
- 适用于开源生态的环境,不依赖 Microsoft 的工具链。
**stable-x86_64-pc-windows-msvc**(MSVC 工具链)- 使用 Microsoft Visual C++(MSVC) 进行编译。
- 依赖 Visual Studio Build Tools(可通过
rustup自动安装)。 - 适用于 Windows 原生环境,通常与 Windows API 兼容性更好,例如 DirectX、.NET。
2. stable-x86_64-pc-windows-gnu 用户安装步骤
如果你选择 GNU 工具链,需要安装 MSYS2 及相关工具。
2.1 安装 MSYS2
- 下载 MSYS2 安装程序:MSYS2 官网
或直接下载最新版(2024-12-08):
MSYS2 64-bit 安装程序 - 运行安装程序,需要 Windows 10 及以上的 64 位系统。
- 选择安装目录(推荐选择无空格、无特殊字符的路径,不要使用网络驱动器)。可以设置其他盘符。

- 完成安装后,点击 Finish。

- 启动 MSYS2 UCRT64 终端(MSYS2 提供多个终端,如
MINGW64、CLANG64,推荐使用UCRT64)。

2.2 安装 MinGW-w64 GCC
安装 mingw-w64 GCC 以支持 Rust GNU 版本:使用如下命令:
pacman -S mingw-w64-ucrt-x86_64-gcc
系统会解析依赖,并提示如下:
resolving dependencies...
looking for conflicting packages...Packages (15) mingw-w64-ucrt-x86_64-binutils-2.41-2mingw-w64-ucrt-x86_64-crt-git-11.0.0.r216.gffe883434-1mingw-w64-ucrt-x86_64-gcc-libs-13.2.0-2mingw-w64-ucrt-x86_64-gmp-6.3.0-2mingw-w64-ucrt-x86_64-headers-git-11.0.0.r216.gffe883434-1mingw-w64-ucrt-x86_64-isl-0.26-1mingw-w64-ucrt-x86_64-libiconv-1.17-3mingw-w64-ucrt-x86_64-libwinpthread-git-11.0.0.r216.gffe883434-1mingw-w64-ucrt-x86_64-mpc-1.3.1-2mingw-w64-ucrt-x86_64-mpfr-4.2.1-2mingw-w64-ucrt-x86_64-windows-default-manifest-6.4-4mingw-w64-ucrt-x86_64-winpthreads-git-11.0.0.r216.gffe883434-1mingw-w64-ucrt-x86_64-zlib-1.3-1mingw-w64-ucrt-x86_64-zstd-1.5.5-1mingw-w64-ucrt-x86_64-gcc-13.2.0-2Total Download Size: 49.38 MiB
Total Installed Size: 418.82 MiB:: Proceed with installation? [Y/n]
按 Y 确认安装,等待完成。
安装完成后,检查 GCC 版本:
gcc --version
输出示例:
gcc.exe (Rev2, Built by MSYS2 project) 13.2.0
2.3 更新 MSYS2
MSYS2 需要定期更新:
pacman -Syu
更新完成后,重新打开 UCRT64 终端。
2.2 安装 gdal
在 MSYS2 UCRT64 终端中运行:
pacman -S mingw-w64-ucrt-x86_64-gdal
安装完成后,检查 GDAL 版本:
gdalinfo --version
如果输出类似:
GDAL 3.9.3, released 2024/10/07
则表示 GDAL 安装成功。
2.3 安装pkg-config
在 Windows MSYS2 环境下,**pkg-config** 是 Rust-GDAL 依赖项之一,用于帮助 cargo 识别 GDAL 头文件和库文件的位置。
在 UCRT64 终端中运行:
pacman -S mingw-w64-ucrt-x86_64-pkg-config
安装完成后,检查 pkg-config 版本:
pkg-config --version
如果输出类似:
0.29.2
说明安装成功 。
2.4 配置环境变量
在系统环境变量中配置下面的安装文件对应的路径:
GDAL_HOME=D:\software\msys2\ucrt64 # 主目录
PKG_CONFIG_PATH=D:\software\msys2\ucrt64\lib\pkgconfig # pkg配置文件路径
PROJ_LIB=D:\software\msys2\ucrt64\share\proj # proj的路径
GDAL_LIB_DIR=D:\software\msys2\ucrt64\lib # lib库的路径
GDAL_VERSION=393 # 安装的具体的gdal的版本
2.5 验证Rust-GDAL是否正确配置
创建 Rust 项目
cargo new rust-gdal-test
cd rust-gdal-test
在 Cargo.toml 添加 gdal 依赖
[dependencies]
gdal = "0.17"
在 src/main.rs 添加代码
use gdal::Dataset;fn main() {let dataset = Dataset::open("/vsicurl/https://download.osgeo.org/gdal/data/gtiff/small_world.tif").expect("Failed to open dataset");println!("Dataset size: {:?}", dataset.raster_size());
}
运行代码
cargo run
如果能正确输出影像数据的尺寸信息,说明 Rust-GDAL 配置安装成功!
相关文章:
Windows 安装 GDAL 并配置 Rust-GDAL 开发环境-1
Rust-GDAL 是 Rust 语言的 GDAL(Geospatial Data Abstraction Library) 绑定库,用于处理地理数据。由于 GDAL 依赖较多,在 Windows 上的安装相对复杂,本文档将介绍如何安装 GDAL 并配置 Rust-GDAL 的开发环境。 1. 检…...
第1期 定时器实现非阻塞式程序 按键控制LED闪烁模式
第1期 定时器实现非阻塞式程序 按键控制LED闪烁模式 解决按键扫描,松手检测时阻塞的问题实现LED闪烁的非阻塞总结补充(为什么不会阻塞) 参考江协科技 KEY1和KEY2两者独立控制互不影响 阻塞:如果按下按键不松手,程序就…...
开源语音克隆项目 OpenVoice V2 本地部署
#本机环境 WIN11 I5 GPU 4060ti 16G 内存 32G #开始 git clone https://github.com/myshell-ai/OpenVoice.git conda create -n opvenv python3.9 -y conda activate opvenv pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/…...
DeepSeek大模型一键部署解决方案:全平台多机分布式推理与国产硬件优化异构计算私有部署
DeepSeek R1 走红后,私有部署需求也随之增长,各种私有部署教程层出不穷。大部分教程只是简单地使用 Ollama、LM Studio 单机运行量化蒸馏模型,无法满足复杂场景需求。一些操作配置也过于繁琐,有的需要手动下载并合并分片模型文件&…...
如何利用PLM软件有效地推进制造企业标准化工作?
在智能制造浪潮的推动下,中国制造业正面临从“规模扩张”向“质量提升”的关键转型。工信部数据显示,85%的制造企业在产品研发、生产过程中因标准化程度不足导致效率损失超20%,而标准化水平每提升10%,企业综合成本可降低5%-8%。如…...
CloudberryDB(六)SPI拓展功能
SPI(Server Programming Interface)在实现原理主要涉及以下几个方面: 1. **模块化设计**:SPI模块是内核中的一个独立模块,允许内核开发者在C函数中执行SQL语句,并管理事务。这种设计使得开发者可以在不修改…...
非谓语动词三驾马车
文章目录 1. 不定式基本结构不定式的由来1.不受主语的人称和数的限制2.没有限定时态3.可以在句子中充当不同的成分 常见句子成分1. 作主语2. 作表语3. 作宾语4. 作定语5. 作状语 不定式 vs 动名词 2. 动名词动名词做成分作主语作主语补语作定语作宾语介词宾语 3. 分词(现在、过…...
环境影响评价(EIA)中,土地利用、植被类型及生态系统图件的制作
在环境影响评价(EIA)中,土地利用、植被类型及生态系统图件的制作需依据科学、法规和技术规范,以确保数据的准确性和图件的规范性。以下是主要的制作依据: 1. 法律法规与政策依据 《中华人民共和国环境影响评价法》 明确…...
Lineageos 22.1(Android 15)更换开机动画
一、原理简介 我们直接用最简单的替换zip的方式来更换开机动画,首先我们要查看系统代码使用的zip包的路径,可能与aosp原生的代码不一定一样。 /frameworks/base/cmds/bootanimation/BootAnimation.cpp bool BootAnimation::threadLoop() {ATRACE_CALL(…...
大语言模型推理中的显存优化 有哪些
大语言模型推理中的显存优化 有哪些 目录 大语言模型推理中的显存优化 有哪些显存优化背景Offloading/Checkpoint原理举例显存优化背景 在大语言模型推理时,显存是显著瓶颈。以开源的BLOOM 176B模型为例,在8张A100计算卡上,通常对话设置下仅能进行批量为10左右的推理。为缓…...
更高效实用 vscode 的常用设置
VSCode 可以说是文本编辑神器, 不止程序员使用, 普通人用其作为文本编辑工具, 更是效率翻倍. 这里分享博主对于 VSCode 的好用设置, 让 VSCode 如虎添翼 进入设置 首先进入设置界面, 后续都在这里进行配置修改 具体设置 每项配置通过搜索关键字, 来快速定位配置项 自动保存…...
【异或数列——博弈论】
题目 思路 异或和为0(即每一位都有偶数个1):平局最高有效位只有唯一的1:先手必胜最高有效位有奇数个1,偶数个0:先手必胜 若先选1产生优势,则剩下偶数个1,偶数个0:对手选…...
阿里云大文件ossutil工具进行上传下载,该工具支持断点续传
ossutil工具进行上传下载,该工具支持断点续传、文件分片、多文件同时上传等 下载和配置 https://help.aliyun.com/zh/oss/developer-reference/install-ossutil 上传操作 https://help.aliyun.com/zh/oss/developer-reference/upload-objects-6 下载操作 https://h…...
草图绘制技巧
1、点击菜单栏文件–》新建–》左下角高级新手切换–》零件; 2、槽口:直槽口,中心点槽口,三点源槽口,中心点圆弧槽口; 3、草图的约束:需要按住ctrl键,选中两个草图,然后…...
Spring Boot中如何自定义Starter
文章目录 Spring Boot中如何自定义Starter概念和作用1. 概念介绍2. 作用和优势2.1 简化依赖管理2.2 提供开箱即用的自动配置2.3 标准化和模块化开发2.4 提高开发效率2.5 提供灵活的配置覆盖3. 应用场景创建核心依赖1. 确定核心依赖的作用2. 创建 starter-core 模块2.1 依赖管理…...
内容中台构建高效数字化内容管理新范式
内容概要 在数字化转型浪潮中,高效的内容管理能力已成为企业构建核心竞争力的关键要素。通过动态发布引擎、元数据智能分类与跨平台协作机制,企业能够实现内容的实时触达与精准分发,同时确保知识资产在多终端环境下的无缝适配与安全共享。这…...
QGIS热力图制作全流程详解
一、热力图的概念与应用 热力图(Heatmap)是一种通过颜色梯度展示空间数据密度的可视化工具,常用于分析点数据的聚集程度。例如,犯罪热点、人口分布、交通流量等场景均可通过热力图直观呈现。QGIS作为开源GIS软件,支持…...
切换镜像源(npm)
常见的npm镜像源 官方源 URL: https://registry.npmjs.org 淘宝镜像源(npmmirror) URL: https://registry.npmmirror.com 其他常用镜像源 URL: https://registry.cnpmjs.org (CNPM) 这里是引用 切换npm镜像源 切换到官方源 npm config set registry http…...
PyQt组态软件 拖拽设计界面测试
PyQt组态软件测试 最近在研究PyQt,尝试写个拖拽设计界面的组态软件,目前实现的功能如下: 支持拖入控件,鼠标拖动控件位置 拖动控件边缘修改控件大小支持属性编辑器,修改当前选中控件的属性 拖动框选控件,点选控件 控…...
深度学习R4周:LSTM-火灾温度预测
🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 任务: 数据集中提供了火灾温度(Tem1)、一氧化碳浓度(CO 1)烟雾浓度(Soot 1)…...
Datawhale 数学建模导论二 笔记1
第6章 数据处理与拟合模型 本章主要涉及到的知识点有: 数据与大数据Python数据预处理常见的统计分析模型随机过程与随机模拟数据可视化 本章内容涉及到基础的概率论与数理统计理论,如果对这部分内容不熟悉,可以参考相关概率论与数理统计的…...
Go框架面试突击!30道高频题解析
前言 有粉丝朋友问我能不能整理Go主流框架方面的面试题,安排! 这篇文章分享了gRPC、GoFrame、GoZero、GoMicro、GORM、Gin等主流框架的30道面试题和详解。 需要大厂面经的朋友们也可以直接加我好友,私信我。 gRPC 1.gRPC是什么ÿ…...
从VGG到Transformer:深度神经网络层级演进对模型性能的深度解析与技术实践指南
一、技术原理(数学公式示意图) 1. 层深与模型容量关系 数学表达:根据Universal Approximation Theorem,深度网络可表达复杂函数: f ( x ) f L ( f L − 1 ( ⋯ f 1 ( x ) ) ) f(x) f_L(f_{L-1}(\cdots f_1(x))) f…...
UIView 与 CALayer 的联系和区别
今天说一下UIView 与 CALayer 一、UIView 和 CALayer 的关系 在 iOS 开发中,UIView 是用户界面的基础,它负责处理用户交互和绘制内容,而 CALayer 是 UIView 内部用于显示内容的核心图层(Layer)。每个 UIView 内部都有…...
一键安装教程
Maven 安装 右键 以管理员身份运行点击 下一步安装完成后会同步配置环境变量打开 cmd, 输入 mvn 查看mvn版本修改 maven 本地仓库地址 见图三, 本地新建文件夹,修改为你本地文件夹地址 Redis 安装 右键 以管理员身份运行点击 下一步会安装到选择的文件夹下 JAVA\R…...
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十二节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(TesterPresent_0x3E服务) 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS协议、0x3E服务、会话保持、ISO 14229-1:2023、ECU测试 一、服务功能概述 0x3E服…...
李宏毅机器学习笔记:【6.Optimization、Adaptive Learning Rate】
Optimization 1.Adaptive Learning Rate2.不同的参数需要不同的学习率3.Root Mean Square4.RMSProp5.Adam6.learning rate scheduling7.warm up总结 critical point不一定是你在训练一个network时候遇到的最大的障碍。 1.Adaptive Learning Rate 也就是我们要给每个参数不同的…...
vscode使用常见问题处理合集
目录 一、使用vite创建的vue3项目,script和style首行代码不会缩进,且格式化属性字段等会换行问题 首行缩进情况如下: 属性、参数格式化换行情况如下: 解决方式: 一、使用vite创建的vue3项目,script和style首行代码不…...
【技术解析】MultiPatchFormer:多尺度时间序列预测的全新突破
今天给我大家带来一篇最新的时间序列预测论文——MultiPatchFormer。这篇论文提出了一种基于Transformer的创新模型,旨在解决时间序列预测中的关键挑战,特别是在处理多尺度时间依赖性和复杂通道间相关性时的难题。MultiPatchFormer通过引入一维卷积技术&…...
Linux内核 - 非仿生机器人之感知主控系统(协议栈)
Linux内核 - 非仿生机器人之感知主控系统(协议栈) 注:该项目为18年实习期间,参与非仿生六足机器人(Linux方案)的个人理解和积累。时至今日,再看其实仅为一套系统编程相关框架,一直为…...
