对于网上到处都是的MSVC编译gdal方式,给出MinGW编译GDAL的过程,可以按照以下步骤自己编译。

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

1. 软件安装

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

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

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

1.1.2 msys2安装

(1)步骤1:下载安装msys2 msys2 下载地址
QT MinGW 编译GDAL
(2)步骤2:使用国内的源
QT MinGW 编译GDAL
(3) 更新msys2的库
QT MinGW 编译GDAL
QT MinGW 编译GDAL
(4) 查看可用的gcc安装包 并安装。以下内容有选择安装(由于我GDAL32 位和64位都需要编译,所以我把msys2的mingw32 和 mingw64都安装了),这是我先前都安装过了,就不在操作了。
例如命令行使用 :pacman -S mingw-w64-x86_64-gcc
进行一个一个安装吧
QT MinGW 编译GDAL
(5) 安装mingw 64 并查看 GCC安装情况
QT MinGW 编译GDAL
(6) 配置Msys2 环境变量
将Msys2安装路径下的mingw64 文件夹的bin目录添加到系统变量path中
QT MinGW 编译GDAL
(7) 重启 查看 gcc
QT MinGW 编译GDAL

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

(这一步可略过 因为这些path环境变量在前面已经配置过了 但是我要解释下)
在安装完所有软件之后,需要添加环境变量:在path下添加以下变量 (如果你想编译MINGW64位的GDAL) 就直接添加蓝线标出的部分,PS:编译GDAL不同位数只能填写 红 or 蓝其中一项 ,例如编译mingw32GDAL 只填写32位变量,如果都填写 会出现编译冲突,编译GDAL不成功现象,。。。这是我后来测试QT项目 两个都写上了 哭
QT MinGW 编译GDAL
(1)下载GDALGDAL1.11.5,解压
QT MinGW 编译GDAL
(2)打开msys2 mingw64 shell
QT MinGW 编译GDAL
(3)进入gdal解压目录
QT MinGW 编译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
完成安装之后可以在 安装文件目录下查看到
QT MinGW 编译GDAL
QT MinGW 编译GDAL
红线部分这个证明你编译成功了,没有缺失文件。

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

错误3:
QT MinGW 编译GDAL
查看这篇博客 可以解决
编译生成动态库 静态库问题

相关文章: