Qt+GDAL开发笔记(一):在windows系统mingw32编译GDAL库、搭建开发环境和基础Demo

如题所述


面对全球北斗开发在Windows环境下的调试需求,转换GPS大地坐标至经纬度成为了关键任务。曾尝试过WG工具,但最终选定开源的GDAL库,虽然mingw32版本编译过程相对复杂,但我们将在本文中详细介绍如何在Windows系统上成功构建GDAL库、搭建开发环境,并提供基础Demo的开发指南。


大地坐标系统以参考椭球面为基准,由经度L、纬度B和大地高H共同定义。北京54坐标系(BJZ54)与国际标准WGS-84坐标系,各自拥有详尽的参数设定,而中国最新的大地坐标体系CGCS2000,即2000国家大地坐标系,同样不可或缺。


GDAL,全称为地理空间数据抽象库,是一款功能强大的工具,支持众多栅格和矢量数据格式,诸如OGR矢量数据,已被ARCGIS、Google Earth等众多GIS产品广泛采用。其核心组件包括GDALMajorObject(元数据对象)、GDALDdataset(栅格波段集合)、GDALDriver(文件格式驱动)以及GDALDriverManager等。OGR体系则涵盖了Geometry(几何操作)、Spatial Reference(投影)、Feature、Feature Definition、Layer、OGRDataSource等关键模块。在Windows平台下,我们通过MSYS2环境、Qt5.9.3版本和PROJ6的集成,来构建GDAL库。


首先,确保你的开发环境准备就绪:安装msys2,选择Qt5.9.3的mingw32版本,以及必要的PROJ6编译工具。GDAL的最新版本3.2.1可以从官方下载站点获取。


接下来,我们详细描述编译步骤:



    下载并解压GDAL 3.2.1,进入目录后运行./configure --prefix=/path/to/install --without-libtool进行配置。
    紧接着,编译PROJ6。首先,从官方网站下载6.2.0版本,然后进行如下操作:

      cd proj-6.2.0/
      执行./configure --prefix=install_dir --without-libtool,可能会遇到SQLITE3配置问题,此时需要额外编译SQLITE3并重新配置。
      依次执行make -j4和sudo make install进行编译和安装。


    回到GDAL目录,下载gdal-3.2.1,配置并编译,可能需要复制头文件以解决编译问题。执行make和make -j4确保编译成功,最后安装gdal:make install。
    在工程中引入mingw32的gcc库,这对于基于v1.1.0的项目尤为重要。

在编译SQLITE3的过程中,我们遇到了一些挑战,如版本问题和环境配置。尽管耗时三天,通过尝试不同版本库和环境调整,最终在msys64和3.42版本上成功编译。但强烈建议除非必要,否则尽量避免使用mingw32编译。


总结这段旅程,开发者的宝贵经验是:在Windows上搭建GDAL开发环境并非易事,但通过精心的规划和耐心的调试,我们最终克服了困难。希望本文的详细指南能为你的项目开发提供有力支持。


温馨提示:答案为网友推荐,仅供参考