QGIS3.10+VS2019+QT5.14编译(附视频教程)

最近公司的项目要用到QGIS,所以花了几天时间研究了一下,编译了两个版本(另一个是QGIS2.18+VS2013+QT5.7.1),使用vs2013编译QGIS比较麻烦,我试了好多QGIS版本都不行,而且不能使用官方提供的依赖库(需要支持c++11),所以个人推荐使用vs2015以上的编译器。

视频教程

https://www.bilibili.com/video/BV1Ho4y1o7ni

编译环境

下载QGIS3.10.13(官方提供的长期稳定版,https://qgis.org/downloads/qgis-latest-ltr.tar.bz2)源代码,同时下载cygwin(https://cygwin.com/setup-x86_64.exe)和OSGeo4W(https://download.osgeo.org/osgeo4w/osgeo4w-setup-x86_64.exe),参考官方帮助文档(https://github.com/qgis/QGIS/blob/master/INSTALL.md#4-building-on-windows)进行编译。

安装bison和flex

双击Cygwin应用程序,初始界面点击下一步,安装选项为默认,然后下一步,如下图
在这里插入图片描述
选择安装目录,下一步,在选择本地安装包存放目录(安装完成后需要手动删除),下一步,选择默认项Direct Connection,下一步选择镜像,如下图
在这里插入图片描述
如果提示找不到镜像地址,可以去官网(https://cygwin.com/mirrors.html)自己查找然后添加进去,下一步弹出安装包选择界面,分别在search框输入flex和bison,展开搜索结果,在skip处双击,会出现对应的版本号,表示要安装该版本,如下图
在这里插入图片描述
之后的过程一直下一步到最后

安装qgis-dev-deps

启动OSGeo4W ,选择 Advanced Install,后面的步骤与安装bison和flex非常类似,只不过在搜索框中搜索qgis-dev-deps,这里不做详细介绍,这一步完成后,QGIS的所有依赖项都会默认下载到OSGEO4W64文件夹下(具体路径和文件名可以指定,建议文件夹名不要改)

配置环境变量

配置环境变量的目的是让cmake自动寻找相关依赖项,如果没有这一步,那么所有的依赖项都需要我们手动输入,特别麻烦。
启动vs2019本地命令提示符(直接启动Windows命令提示符工具也可以,但是Windows SDK需要自己配置),如下图
在这里插入图片描述
在命令行中分别配置以下环境变量(具体路径根据本机实际安装包所在目录修改,尤其是第一项):
set OSGEO4W_ROOT=F:\QGIS_VS2019_QT5.14\3dpart\OSGEO4W64
call "%OSGEO4W_ROOT%\bin\o4w_env.bat“
call "%OSGEO4W_ROOT%\bin\py3_env.bat“
call “%OSGEO4W_ROOT%\bin\qt5_env.bat”(这是OSGEO4W自带的QT环境,如果不用这个,则不需要配置)
set QtDir=C:\Qt\Qt5.14.1\5.14.1\msvc2017_64(使用本机安装的QT5.14)
set QT_PLUGIN_PATH=%QtDir%\plugins(插件目录)
path %path%;%QtDir%\bin;%OSGEO4W_ROOT%\bin;F:\QGIS_VS2019_QT5.14\3dpart\cygwin64\bin
set O4W_ROOT=%OSGEO4W_ROOT:=/%
set LIB_DIR=%O4W_ROOT%
set GRASS_PREFIX=%OSGEO4W_ROOT%/apps/grass/grass78
set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\include
set LIB=%LIB%;%OSGEO4W_ROOT%\lib;%OSGEO4W_ROOT%\lib
set LIB=%LIB%;%OSGEO4W_ROOT%\lib
“C:\Program Files (x86)\CMake\bin\cmake-gui.exe“(启动cmake)

安装QT附加依赖项

如果不使用OSGEO4W自带的QT环境(QT5.11),许多QT的依赖库需要单独编译安装,我用的QT5.14直接使用OSGEO4W提供的依赖库也能编译通过,但是我还是重新编译了一下,主要有QCA、QWT、QtKeyChain、QSCINTILLA、QtWebkits.

配置cmake

以上环境搭建完成后。配置cmake就比较简单了,如果有依赖库找不到的地方可以手动添加,具体过程可以看我录制的视频,这里就不多做介绍了

编译

编译过程中会出现一些问题,如果提示“常量中有换行符”这类编译错误,则需要在工程->属性->C+±>命令行输入/utf-8,如下图
在这里插入图片描述
同时需要注意不能编译Debug,因为OSGEO4W提供的依赖项都是Release模式的,编译完成后将qgis设为启动项目,然后在工程属性中添加QT的环境变量,如下图在这里插入图片描述
点击本地Windows调试按钮(或按F5),启动qgis如下图所示
在这里插入图片描述
启动过程中提示Python Error,这个问题目前我也没解决,由于python环境已经配置了,而且已经安装PyQt5,但是QGIS就是提示找不到模块,但这个影响不大, 完全不影响源代码的调试。

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值