获取编译好的QGIS
QGIS是跨平台的,因此在不同平台上获取编译好的QGIS方法也不尽相同。
我不推荐直接从源码编译QGIS(但是需要保留一份源代码以供学习),因为QGIS的依赖库实在是太多了,配置比较复杂。并且,QGIS更新频繁,不可能每次出来新的Release,都要再来编译一遍啊。
1. Windows
在Windows系统上,可以通过OSGeo4W项目 来获取包括QGIS、GDAL在内的开源空间库的二进制开发包。如果电脑是64位的,推荐使用64位的OSGeo4W。在安装的过程中,要选中"Advanced Install",然后要勾选"qgis-devel"。
安装完毕后,基于VS2010编译的QGIS就配置好了。
2. Linux & Mac OS
在非Windows平台上安装QGIS,只需按照官方说明 操作即可。
基础学习
QGIS源代码托管在Github上面,(我是传送门 )。学习QGIS,少不了查阅源代码,因此我们有必要拖一份源代码到本机上来。
为了弄清楚QGIS源代码结构,我们有必要掌握以下工具的基本使用方法:
1. Git && Github
Git是一个分布式版本控制系统,读者可以阅读《Git教程》 来了解。
Github是一个代码托管网站,用户可以通过Git将代码托管在Github上面。目前,主流的开源项目都会将源代码托管在Github上。
2. Qt
QGIS是基于Qt4开发的(之前的博客介绍过Qt)。Qt目前最新版本是5.4,但是QGIS暂时只支持Qt4(QGIS最新版开始支持Qt5了,但需要自己编译)。
在Windows系统下面,使用OSGeo4W安装QGIS后,应该也就自动安装好了Qt4。
Qt入门推荐看这个系列:《Qt 学习之路 2》
3. Qt Creator(qmake)
本系列QGIS教程,使用Qt Creator作为IDE,因为使用Qt Creator来开发Qt项目是最爽的(并且是跨平台的)。Qt Creator下载地址
一般在Qt Creator中的基于Qt的程序,大都由qmake构建,项目信息写在pro文件中(Qt Creator还支持CMake构建的项目)。
qmake是一个协助简化跨平台进行项目开发的构建过程的工具程序,Qt附带的工具之一 。
qmake能够自动生成Makefile、Microsoft Visual Studio 项目文件 和 xcode 项目文件。
不管源代码是否是用Qt写的,都能使用qmake,因此qmake能用于很多软件的构建过程。
by 维基百科——qmake
QGIS的代码结构
进入QGIS源代码文件夹,可以看见,其目录结构如下:
QGIS
├─.tx
├─cmake CMake相关文件
├─cmake_templates
├─debian Debian系统相关配置文件
├─doc 文档
├─i18n 国际化文件(翻译)
├─images 图表
├─mac Mac OS系统相关配置文件
├─ms-windows Windows系统相关配置文件
├─postinstall
├─python PyQGIS
├─resources 资源文件
├─scripts 脚本文件
├─src C++源代码文件
├─tests 测试
└─tools
其中,我们只关心src文件夹:
QGIS
├─src
│ ├─analysis 空间分析模块,对应qgis_analysis.dll
│ ├─app 主程序,对应qgis-bin.exe
│ ├─astyle Artistic Style
│ ├─browser QGIS的浏览器,对应qgis-browser-bin.exe
│ ├─core QGIS核心模块,对应qgis_core.dll
│ ├─crssync
│ ├─customwidgets QGIS在Qt Creator中的控件
│ ├─designer
│ ├─gui QGIS的GUI界面模块,对应qgis_gui.dll
│ ├─helpviewer QGIS帮助浏览器
│ ├─mapserver
│ ├─plugins QGIS插件
│ ├─providers QGIS数据Provider
│ ├─python QGIS内置Python解析器模块,对应qgispython.dll
│ └─ui QGIS界面UI文件
由其源码我们看到,QGIS由CMake管理构建,内部采用模块化开发。
总结
如果现在电脑上按照上述要求,有了完整的QGIS-开发包(Win下面就是lib、dll和一堆头文件)和Qt4、QtCreator,那么就可以开始进行基于QGIS的开发了!