获取编译好的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的开发了!