QGIS编译---QGIS3.10.6 + Qt5.11.2 + VS2015 ---32位版本
前言
1、编译QGIS3.X版本的初衷:
(1)前期基于QT4.8.6和VS2010编译过QGIS 2.14.16,这次编译QGIS3.10.6带有“自虐”倾向,选择3.10.6也非偶然,是经历了QGIS3.4和QGIS3.6源码编译失败之痛后完成的,现在回想已知问题所在,后续再印证。
(2)QT4、VS2010、QGIS2.X现在已经非常成熟,但世间没有永恒不衰之物,这些工具完成了一场场华丽的演绎,终将慢慢退出历史舞台,就像恒星周期的主序星向红巨星的演变(虽然不会经历那么漫长的时间)。现在QT5、VS2015+、QGIS3.X已经非常流行,为研究这些工具的新特性,特此尝试。
(3)QGIS的编译对于初学者而言不可谓不痛苦,但世间之事,哪一件容易?编译过程包含多个步骤,可能包含多种第三方依赖库的编译,并且最重要的是不同软件和依赖库之间的版本匹配问题(vs2010还是vs2015还是vs2017?qt4还是qt5?qt4.?qt5.?第三方依赖包选择哪个版本?)。
2、编译环境&&软件版本:
(1)Windows 10 64位 家庭中文版
(2)Visual Studio 2015 Professional(专业版)
(3)Qt-5.11.2 32位
(4)CMake-3.14.5 32位
(5)Cygwin 32位
(6)OSGeo4W 32位
(7)QGIS-3.10.6 (待构建的源码)
3、本教程编译的是32位QGIS,后续加更64位编译
过程
1、软件准备:
(1)操作系统:Windows 10 64位 家庭中文版(32位也可,专业版、旗舰版也可)
(2)其他软件下载:
工具包 | 下载地址 |
---|---|
QGIS 3.10.6 源码 | https://github.com/qgis/QGIS/releases |
Qt-5.11.2(32位) | 通过官网,或通过OSGeo4W下载安装,官网:https://download.qt.io/new_archive/qt/,或https://download.qt.io/archive/qt/ |
CMake(32位) | https://cmake.org/download/ |
Cygwin(32位) | http://cygwin.com/setup-x86.exe |
OSGeo4W (32位) | http://cygwin.com/setup-x86.exe |
2、开始编译:
(1)QGIS源码解压到非中文、无空格路径下;
(2)安装Cygwin的同时下载安装flex、bison,过程请参考笔者之前写的教程:
QGIS编译—QGIS2.14.16 + Qt4.8.6 + VS2010 —32位版本
(3)安装OSGeo4W 的同时下载安装:expat、fcgi、gdal、grass、gsl-devel、iconv、pyqt5 、qt5-devel、qwt、sip、spatialite、libspatialindex-devel、qscintilla、python、geos、proj、qca、qtkeychain、libzip,具体过程参考教程同上,但是要注意:如果某个包存在qt4和qt5两个版本,选择qt5的版本,以相区别;如果不想按上面一个一个查找,也可以在OSGeo4W中直接下载安装qgis-dev包;
(4)配置环境变量:
将Cygwin和OSGeo4W及其下载的依赖库添加到系统的环境变量。假设都装在C盘,则在系统变量Path里添加: C:\cygwin\bin;C:\cygwin\lib;C:\OSGeo4W\bin;C:\OSGeo4W\include;C:\OSGeo4W\lib;
配置完成后,启动命令行,输入:echo %path%
回车即可使得配置的环境变量立即生效,而不用注销或重启。
(5)修改源码:
找到解压的QGIS源码文件夹,修改里面的三个位置:
1)源码的根路径下,打开“CMakeLists.txt”,找到所有的“CMAKE_CXX_FLAGS”,在后面添加“/MP /utf-8”,如下图所示,目的有二,一是加快编译速度,二是解决无法识别字符的问题;
2)源码的根路径下,找到“ms-windows\osgeo4w”,找到“msvc-env.bat”,右键“编辑”打开,修改里面的CMake\bin的路径,如下图所示:
如果你的OSGeo4W和Cygwin没有安装在C盘,那么里面的位置要更改为实际安装位置:
3)源码的根路径下,找到“src\providers\mdal”,打开“CMakeLists.txt”,找到第23行“FIND_PACKAGE(LibXml2)”,在下面添加一行“FIND_PACKAGE(Threads)”,如下图所示:
(6)创建批处理文件:
在任意位置,新建一个“start_compile.bat”,右键-编辑,里面内容如下:
@echo off
call D:\project\qgis3_compile\source\qgis_source_031006\ms-windows\osgeo4w\msvc-env.bat x86
@cmd
(7)CMake配置与构建:
1)将“cmake-gui.exe”所在路径添加到环境变量;
2)Windows开始菜单,找到“VS2015 x86本机工具命令提示符”,打开;
3)运行刚才创建的“start_compile.bat”,如下图所示:
4)输入“cmake-gui”,回车,弹出CMake的图形化界面;
5)“Where is the source code”一栏选择QGIS源码的文件夹,“Where to build the binaries”一栏选择生成vs工程的目标路径;
6)点击“configure”,在弹出对话框选择“Visual Studio 14 2015”,点击“finish”;
7)如果前面的配置没有问题,configure将顺利完成;
8)取消勾选“WITH_BINDINGS”,勾选WITH_CUSTOM_WIDGETS、WITH_QSPATIALITE;整个CMake的选项如图所示:
9)点击“generate”,如果前面的配置没有问题,generate将顺利完成;
10)点击“open project”,打开生成的vs工程,可以看到一共有340个工程,如下图所示:
11)编译配置选择“RelWithDebInfo”、“Win32”,如下图所示:
11)点击“生成-生成解决方案”,不出意外的话将顺利完成,如下图所示(笔者第一次编译成功后忘了截图,重新生成的话耗时较长,此处仅展示第二次点击“生成解决方案”的结果):
12)点击“开始调试(F5)”,QGIS正常启动,证明QGIS源码编译成功:
QGIS编译---QGIS3.10.6 + Qt5.11.2 + VS2015 ---32位版本相关推荐
- QGIS编译---QGIS3.22.4 + Qt5.15.3 + VS2019 ---64位版本
0 编译结果 先放上编译结果: 图1 QGIS3.22 启动界面 图2 QGIS3.22 操作界面 1 前言 因一些主观.客观原因,一年多没更新博客了,提笔继续. 这是笔者编译的第三个版本QGIS,本 ...
- QGIS编译---QGIS2.14.16 + Qt4.8.6 + VS2010 ---32位版本
编译前须知(有必要的几句啰嗦): 1.莫被这个教程的篇幅吓到,其实篇幅不大.就算大家觉得太啰嗦,请见谅,笔者写教程就是喜欢详细,喜欢面面俱到.再者,本教程是为了解答很多人编译QGIS遇到的头疼问题,虽 ...
- 谷歌浏览器32位版本安装包_Windows 10 OEM渠道告别32位版本 这意味着什么?
本周,微软宣布,自2020年5月更新开始,Windows 10 OEM 渠道将彻底告别32位版本.在这之后,软件巨头将不再向原始设备制造商提供非64位版本的系统.对于当前仍在使用早期32-bti系统的 ...
- 编译并使用boost库(win7+boost1.63+vs2015+32位or 64位)
博客 学院 下载 GitChat 论坛 问答 商城 VIP 活动 招聘 ITeye 码云 CSTO 写博客 发Chat 编译并使用boost库(win7+boost1.63+vs2015+32位or ...
- 关于 百度飞浆paddleOCR编译32位版本 的解决方案
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113890812 长期持续带来更多项目与技术分 ...
- Qt5串口多功能助手32位版本相关程序含源码
开发平台:Qt 5.9 编译环境:MinGW 5.3 32bit Qt6.3-64位版本文章链接:(102条消息) Qt6串口多功能助手64位版本上位机源码_阿衰0110的博客-CSDN博客 免费安 ...
- 太阳神三国杀学习第一步--编译并运行(qt5.7.0+vs2015)
起因: 很早就想寻找一个开源的c++项目进行学习,也在很早就发现了太阳神三国杀这个项目,但是之前在github中下载后总是草草编译一直没有编译成功过,最近又重燃斗志决定深入研究一下. 分析应该 ...
- mysql8.0.13 32位下载_MySQL8.0下载-MySQL数据库8.0下载 v8.0.11官方版(32位/64位)--pc6下载站...
mysql是一款数据库管理系统,mysql一般网站开发者或者数据库开发者会用到,mysql拥有体积小巧.读取和存储速度快的特点,新版本完全脱了MylSAM存储引擎,改善了扫描性能,同时还重构了sql分 ...
- 编译QT 5.9.7 msvcr2013 x86 32位版本
因为项目需要,用到了qt msvcr2013 x86 版本 ,但是官方下载的qt安装包里面只有x64的,因此决定自己编译x86的版本. 编译所需要的工具: qt源码包 ,python ,vs2013 ...
- 小米6 MIUI 10 9.4.11 EDXPOSED
众所周知,大神ravo89从 android 7以后就没在更新xposed了,导致android 8以后就没有使用xposed了.只好另辟蹊径,网上到处寻找如何愉快的抢个红包. 经过多次尝试,经历多次 ...
最新文章
- https ddos攻击——由于有了认证和加解密 后果更严重 看绿盟的产品目前对于https的ddos cc攻击需要基于内容做检测...
- 六十一、Vue中父子组件传值和组件参数校验
- 在哪开启oracle服务器,开启企业殿堂的钥匙 Oracle服务器的安装
- php 404重定向,如何使用PHP实现在WordPress中将404错误页面重定向到主页
- iSCSI远程块存储配置实验
- mysql error 1017_[转载]解决 mysql ERROR 1017:Can t find file解决错误
- vc red.msi matlab,vc red.msi x64+x32位版下载
- 深港澳金融科技师(SHMFTTP)一级考试
- 【python】爬取植物数据库
- 总结SSL/TLS协议运行机制
- [c++]c++程序设计-Y.Daniel.Liang 笔记
- 使用wireshark解密PC浏览器的HTTPS流量
- 研发管理01:项目管理(PM) 与 Scrum Master (SM)
- Js 获取日期加(减)一天并规范日期格式
- 2023年计算机毕设选题推荐
- java基础做简单的医院管理系统,附带课程设计说明书
- 基于sdm660 androidO----MTP driver 分析
- 虚拟化平台安装并升级显卡驱动
- 英语-TOEFL和GRE复习计划与资料
- 实用Android 屏幕适配方案分享