QT MinGW 编译和使用GDAL

部署运行你感兴趣的模型镜像

MinGW编译GDAL(转载:https://blog.youkuaiyun.com/qq_32629895/article/details/106147965)


如果不想编译可以查看我的这篇博客下载编译好的GDAL1.11.5
QT GDAL配置以及下载

1. 软件安装


从头说起 先说说必要的软件环境

1.1 在编译GDAL(mingw)之前你需要安装QT 以及 msys2(它是包含mingw32 和mingw 64的)

1.1.1 QT安装按正常步骤在安装界面选填mingw部分即可
安装完之后 必须把QT的mingw 配置到path环境变量

在这里插入图片描述
1.1.2 msys2安装

(1)步骤1:下载安装msys2 msys2 下载地址

在这里插入图片描述

(2)步骤2:使用国内的源

在这里插入图片描述

(3) 更新msys2的库

在这里插入图片描述

在这里插入图片描述
(4) 查看可用的gcc安装包 并安装。以下内容有选择安装(由于我GDAL32 位和64位都需要编译,所以我把msys2的mingw32 和 mingw64都安装了),这是我先前都安装过了,就不在操作了。
例如命令行使用 :pacman -S mingw-w64-x86_64-gcc
进行一个一个安装吧

在这里插入图片描述

(5) 安装mingw 64 并查看 GCC安装情况

在这里插入图片描述

(6) 配置Msys2 环境变量
将Msys2安装路径下的mingw64 文件夹的bin目录添加到系统变量path中

在这里插入图片描述

(7) 重启 查看 gcc

在这里插入图片描述

2. 以mingw编译GDAL1.11.5为例子


(这一步可略过 因为这些path环境变量在前面已经配置过了 但是我要解释下)
在安装完所有软件之后,需要添加环境变量:在path下添加以下变量 (如果你想编译MINGW64位的GDAL) 就直接添加蓝线标出的部分,PS:编译GDAL不同位数只能填写 红 or 蓝其中一项 ,例如编译mingw32GDAL 只填写32位变量,如果都填写 会出现编译冲突,编译GDAL不成功现象,。。。这是我后来测试QT项目 两个都写上了 哭

在这里插入图片描述

(1)下载GDALGDAL1.11.5,解压

在这里插入图片描述

(2)打开msys2 mingw64 shell

在这里插入图片描述

(3)进入gdal解压目录

在这里插入图片描述

(4)./configure -prefix=/g/GDAL1115(该参数指定第6步中的安装路径),这个 " ."是要有的,嘿嘿,后面的 -prefix…什么我没加
(5)make
如果在链接时出现找不到“/g/gdal-1.11.5/frmts/o/.libs/EnvisatFile.o”的错误,打开GNUmakefile文件修 改 6-12 行,用 . (英文句点)替换这几行中的“$(GDAL_ROOT)”,再执行make。也可以在执行make之前先对GNUmakefile文件进行上述修改后,再 执行make。这里的错误,我没遇到,没有修改gunMakefile,可能是新版本号的
(6)make install
完成安装之后可以在 安装文件目录下查看到

在这里插入图片描述

在这里插入图片描述
红线部分这个证明你编译成功了,没有缺失文件。

ps:编译过程中可能遇到的error展示,如果软件 和环境 都配置好 不会出现错误的
错误1:

在这里插入图片描述

错误2:

在这里插入图片描述
错误3:

在这里插入图片描述

查看这篇博客 可以解决
编译生成动态库 静态库问题(https://blog.youkuaiyun.com/weixin_34210740/article/details/86019361)

版权声明:本文为优快云博主「晨曦熏暧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_32629895/article/details/106147965

 

qt5-mingw 使用gdal

QT(MinGW)中配置GDAL


附上我mingw编译GDAL的过程:
mingw编译GDAL

本文将介绍一种不需要通过导入外部库的方式,在.pro文件中配置GDAL,非常简便,基本不会出错。

我使用的是msys2+mingw32 编译的GDAL库

1、配置环境变量
2、配置.pro文件


(1)配置系统变量

选择新建一个系统变量,例如我使用的GDAL_MINGW_32,变量值:写你自己GDAL所在的路径

在这里插入图片描述
(2)配置环境变量
选择path ,选择新建一个变量,填写GDAL的bin文件夹所在的路径。例如我的:G:\GDAL1115\bin

在这里插入图片描述

(3)重启系统使环境变量生效

这个非常重要,记得配置完之后,一定要重启,否则不会生效的。

(4) 重启后 配置QT .pro文件

导入头文件和动态链接库,
这里解释下 加上-l 后 libgdal.a 前面lib和后缀可以省写

在这里插入图片描述

这种写法

在这里插入图片描述

(5) 配到这里,就可以直接在QT 中 写GDAL代码了

先别着急 还有一部需要完成
解释下 用了我编译好的gdal库,出现程序异常的原因:
如果你下载了我编译好之后的mingw-gdal库,并且按上面步骤 都配置好之后,打开QT编写gdal代码,运行项目出现 程序异常结束 现象。 你一定很生气,这个博主编译的gdal库根本就用不了,就是来骗积分的,错….因为你下载的gdal库由于缺少了所依赖的dll文件 ,所以会出现程序异常结束现象。 我在csdn下载了其它博主用mingw编译的gdal库,也是使用不了,刚开始我也以为是gdal库有问题,在经过自己的实践,发现是博主在上传编译好之后的gdal库,没有把其所以赖的dll 文件一起打包所造成的。

我是用msys2+QT 编译的gdal,由于编译GDAL用到了msys2的库,所以编译成功之后的gdal 必须 要配合msys2 使用。

如何解决呢?
步骤1: 首先要保证你的QT环境变量已经配置好了 (ps:QT(MinGW)中配置GDAL 上面步骤也已经完成)
例如:

在这里插入图片描述

————————————————
版权声明:本文为优快云博主「晨曦熏暧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_32629895/article/details/105738977

 

您可能感兴趣的与本文相关的镜像

PyTorch 2.6

PyTorch 2.6

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

<think>好的,用户现在想知道如何在Qt中配置GDAL库。根据之前的对话历史,用户之前询问了在C++的GDAL库开发中是否有交互式选择文件读取的方法,我推荐了使用Qt的QFileDialog结合GDALAPI,并提供了代码示例。现在用户进一步询问如何配置GDAL库到Qt项目中,需要根据提供的引用内容来回答。首先,我需要回顾用户提供的引用内容。引用[1]提到需要下载特定版本的Qt(MSVC编译版本)编译GDAL库,并说明了解压路径不需要配置环境变量。引用[2]说明在Qt中添加外部库的步骤,右键项目添加库,选择GDAL的静态库文件包含路径。引用[3][4]涉及GDAL的依赖库编译不同版本的下载地址,但用户当前的问题可能不需要编译源码,而是直接使用编译库。 接下来,我需要整理配置步骤。首先,确保Qt版本正确,用户需要MSVC版本的Qt,如Qt5.3 MSVC201232位,避免使用MinGW版本。然后下载预编译GDAL库,包含includelib文件。接着在Qt项目中添加库,包括头文件路径库文件路径,并处理可能的依赖项,如projsqlite3。同时,需要注意动态链接库的部署,比如将.dll文件放在可执行目录下。 需要强调几个关键点:Qt的版本必须与GDAL库的编译环境匹配,例如MSVC编译器;添加库时的路径设置;以及运行时需要动态库的问题。此外,根据引用[3],如果用户需要自行编译GDAL,可能需要处理依赖关系,但用户的问题可能更倾向于使用编译库,所以分情况说明。最后,生成相关问题,帮助用户进一步解决可能遇到的问题,如编译错误、依赖处理、调试配置等。</think>### 在Qt中配置GDAL库的完整步骤 #### 一、环境准备 1. **选择Qt版本** 必须使用**MSVC编译器**的Qt版本(例如`Qt_5_3_MSVC2012_OpenGL_32bit`)[^1],避免使用MinGW版本(如`qt-opensource-windows-x86-mingw530`),否则会导致库不兼容。 2. **获取预编译GDAL库** 下载已编译GDAL库(包含`include`头文件目录`lib_x86_debug`/`lib_x86_release`库文件目录)[^1],解压到本地路径(如`D:\gdal`)。 #### 二、项目配置 1. **添加头文件路径** 右键Qt项目 → 选择“属性” → 进入“构建环境” → 添加包含路径: ```bash INCLUDEPATH += D:\gdal\include ``` 2. **链接静态库文件** 右键项目 → 选择“添加库” → 选择“外部库”: - **库文件**:选择`lib_x86_debug`或`lib_x86_release`中的`.lib`文件(如`gdal_i.lib`) - **包含路径**:指向`include`文件夹 ```pro LIBS += -LD:\gdal\lib_x86_debug -lgdal_i ``` 3. **处理依赖项(若需动态链接)** - 将`lib_x86_debug\bin`或`lib_x86_release\bin`中的`.dll`文件(如`gdal304.dll`)复制到: - Qt可执行文件目录(`build-...-Debug`或`build-...-Release`) - 或系统`PATH`环境变量包含的路径中[^2]。 #### 三、验证配置 ```cpp #include <gdal_priv.h> #include <QDebug> int main() { GDALAllRegister(); // 初始化GDAL驱动[^1] GDALDataset* dataset = (GDALDataset*)GDALOpen("test.tif", GA_ReadOnly); if (dataset) { qDebug() << "波段数:" << dataset->GetRasterCount(); GDALClose(dataset); } else { qDebug() << "文件打开失败"; } return 0; } ``` #### 四、常见问题解决 - **编译错误`LNK2019`**:检查库文件路径是否正确,确保编译器架构(32/64位)与库匹配[^1]。 - **运行时缺少DLL**:将`gdal304.dll`、`proj_9_2.dll`等依赖库放入可执行目录[^3]。 - **自定义编译GDAL**:若需从源码编译,需先编译依赖库(SQLite → PROJ → GDAL)[^3],参考命令: ```bash nmake -f makefile.vc MSVC_VER=1910 WIN64=YES ``` --- ### 关键配置示意图 ```plaintext 项目结构 ├── include/ ← GDAL头文件 ├── lib_x86_debug/ ← Debug静态库(.lib) └── lib_x86_release/← Release静态库 ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值