qt 配置GDAL库

       一、 首先下载Qt_5_3_MSVC2012_OpenGL_32bit(注意qt-opensource-windows-x86-mingw530版本的不行,必须是MSVC)和已经编译好的GDAL库(https://pan.baidu.com/s/1usDfEC2u_Y4uXGqRejH0tQ 密码: kw9f),安装Qt(默认就行),将GDAL解压到某一文件下(我的在d盘根目录下面,里面有三个文件,include是包含的头文件,lib_x86_debug是32位的debug文件,里面有bin和lib文件,lib_x86_release是发布用的),都不需要配置环境变量。

        二、打开Qt5.3.2,新建项目new1,新建完成后,在项目名称上面右击选择“添加库”,然后选择第二个“外部库”,点击“下一步”,选择情况如下图所示:

        三、然后点击“下一步”,点击“完成”。在Qt左边的项目列表里面双击打开项目的pro文件,可以看到最下面多了四行代码:

        四、将第二行最后面的“d”删掉,如下面所示:

        五、在项目名称上右键选择第三个“执行qmake”,稍等一下,然后将解压的GDAL下面的D:\lib_x86_debug\bin目录下面的gdal201.dll动态链接库添加到刚才新建的项目的build-new1-Desktop_Qt_5_3_MSVC2012_OpenGL_32bit-Debug文件夹下面即可。

        六、代码演示

包含头文件:

#include "gdal_priv.h"

#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

	GDALAllRegister();//注册驱动
	GDALDataset  *poDataset;
	//请输入你的正确的路径
    poDataset = (GDALDataset *) GDALOpen( "D:/Desktop/3.tif", GA_ReadOnly );
    if( poDataset == NULL )
    {
        qDebug()<<"poDataset is NULL"<<endl;
        return ;
    }
	//获取图像宽、高、波段数
	int width = poDataset->GetRasterXSize();
	int height = poDataset->GetRasterYSize();
	int bandCount = poDataset->GetRasterCount();

	qDebug()<<width<<" "<<height<<" "<<bandCount<<endl;
    
    GDALClose(poDataset);//记得关闭数据

}

 

<think>好的,用户现在想知道如何在Qt配置GDAL。根据之前的对话历史,用户之前询问了在C++的GDAL开发中是否有交互式选择文件读取的方法,我推荐了使用Qt的QFileDialog结合GDALAPI,并提供了代码示例。现在用户进一步询问如何配置GDALQt项目中,需要根据提供的引用内容来回答。首先,我需要回顾用户提供的引用内容。引用[1]提到需要下载特定版本的Qt(MSVC编译版本)和已编译的GDAL,并说明了解压路径和不需要配置环境变量。引用[2]说明在Qt中添加外部的步骤,右键项目添加,选择GDAL的静态文件和包含路径。引用[3]和[4]涉及GDAL的依赖编译和不同版本的下载地址,但用户当前的问题可能不需要编译源码,而是直接使用预编译。 接下来,我需要整理配置步骤。首先,确保Qt版本正确,用户需要MSVC版本的Qt,如Qt5.3 MSVC201232位,避免使用MinGW版本。然后下载预编译的GDAL,包含include和lib文件。接着在Qt项目中添加,包括头文件路径和文件路径,并处理可能的依赖项,如proj和sqlite3。同时,需要注意动态链接的部署,比如将.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
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值