MinGW 编译 gdal-2.2.3 并在Qt使用
需要使用Microsoft Visual C++ Build
Tools,没有的话提供2015版本,默认安装就可以
主要参考这个
gdal选择2.2.3版本不同于参考文章 直接在开始菜单打开VS2015 86||64 Native Tools Command Prompt即可,不需要执行
vcvars32.bat 正确修改gdal目录nmake.opt中这两项内容
最后依次在窗口执行nmake /f makefile.vc
nmake /f makefile.vc install
nmake /f makefile.vc devinstallQt配置参考
添加完成后在 .pro 文件可能需要删除下面结尾的d**(我并不清楚如何,请谨慎)**,原因是在添加库的时候选择不同,但似乎问题不大
之上全都是使用VS编译,但是我QT使用的是MinGW32编译,似乎因为这歌原因造成,部分函数调用不了,需要自己选用对应的工具编译。
过程主要参考这个
同样是使用2.2.3版本
本想直接利用Qt的MinGW编译,安装msys后未成功(应该不是完整MinGW),于是老老实实从新安装,下载过程参考这个中提到安装过程,但我不需要添加环境变量就可以运行。
编译过程中会出错:
首先,先参考这篇文章,除了其中提到的问题,
还可能出现:if(nRet != NO_ERROR) NO_ERROR 未定义错误,我在gdal-2.2.3\gcore\gdalclientserver.cpp 还有gdal-2.2.3\apps\gdalserver.c下找到错误代码行,强行将NO_ERROR 修改为0。
编译过程好久。
编译完成后按照添加库添加到Qt项目中,调用GDALAllRegister()或其他代码;
但是
我编译过程全部通过,但是运行debug版本时,直接程序退出,在尝试
- 添加环境变量
- 复制gdal/BIn目录文件至debug目录
- 添加gdal文件夹至Qt项目
- 等等
各种之后均无法成功运行,程序直接崩溃,并不知道为什么,
就是这种错误