1编译环境准备
1.1 开发工具
VS2015、Qt5.9.2、cmake3.12.3
1.2 源码
Qgis3.4.1
第三方库可以通过官网下载,但是有些第三方库官网没有需要自己下载编译,这里自己列出需要自己下载
Qwt:路径http://qwt.sourceforge.net/#downloads
qca-2.1.3:路径https://userbase.kde.org/QCA
QScintilla:路径http://www.riverbankcomputing.co.uk/software/qscintilla/download
Libzip:路径https://libzip.org/download/
qtkeychain-0.8.0:路径https://www.freshports.org/security/qtkeychain-qt5/
以上几个第三方库需要自己编译,因为在官方提供的库中有的只有dll没有lib,有的没有找到;其次官网提供的库只有release没有debug版本,那怎样编译debug版本的程序那,其实大家都知道debug编译可以使用release版本的库,只是如果是带UI的库,必须使用debug版本,否则就算编译通过了运行qgis会崩溃。
2 编译过程
2.1 配置qgis工程
网上很多教程都是把qgis的cmake工程转乘VS工程进行编译,其实官方编译文档也是这样提供的,但是很多开发qt的小白兔都使用的是QtCreator这个优美的IDE,如果用VS编译,调试都不是很方便,如果能将CMake工程转成Pro工程或者直接在QtCreator中直接编译那就太棒了,其实QtCreator可以直接编译cmake工程,配置也很简单。配置过程点击这个链接(之前写过的一个公众号):
上述连接是编译osg时的工程,当然编译qgis一样,唯一的区别时配置qgis比配置osg麻烦些。
第一步:先在QtCreator中配置CMAKE
第二步:在通过QtCreator打开qgis3.4.1工程,此时可能无法打开成功,但是没事配置好输出路径即可。
第三步:通过cmake配置工具再次进行qgis3.4.1工程配置,但是输出路径必须和刚才QtCreator配置的输出路径一致(其实qtCreator已经将cmake配置过程集成到了QtCreator中只是没有cmake-gui方便才再次使用cmake-gui进行配置)。
提示:在打开cmake-gui.exe时不要直接双击打开,通过命令行打开(启动依赖库配置项这样可以自动加载配置第三方库,此方法让你省去查找第三方库及头文件真的很好),不清楚可以参考网上的一个博主连接:
https://blog.youkuaiyun.com/qq_34357717/article/details/81305084
配置完成后,再次在QtCreator中打开qgis3.4.1工程,如下图:
2.2编译
编译过程中遇到错误最多的时文件编码问题,官方下载的源码默认采用utf-8,很奇怪之前编译其它版本都好好的,就是编译此版本各种编码问题,经过测试全部将.cpp文件转成了utf-8+BOM格式,编译一路路灯。
3运行结果