QGIS2.4.0编译过程
sf2gis@163.com
2014年8月9日
2014年8月26日改正:将注册bat
文件放到cmake之前
2014年8月26日添加:VS版本等注意事项
1 概述
本文主要说明QGIS2.4.0的编译过程。
注:几年前编译1.7.0的时候,连帮助文件都不知道从哪里找,硬是依靠google编译过了,当时真是很想感谢google,几年过去了,google在国内依然不能使用,虽然大多数技术人员都在用各种方法使用,但是大多数情况下,还是用百度。但是,真正能起作用的,还是google,不用怀疑。让我感到很震惊的是,这几年,竟然习惯了没有google的日子!
今天又重新编译2.4.0,Qt竟然还是用Qt4.7.1,而最新版本已经到了5.3。看来还是人家国外的人比较沉得下心来。
1.1 依据
最可靠的编译依据来源于QGIS官方在源文件的帮助中提供的编译说明(src/doc/install.html)。里面有非常详细的编译说明,包括各种平台的。
此外,如果遇到问题,可能google,国外用的比较多,能够找到很多有用的资料。百度就算了,不要浪费时间。
1.2环境
官方文档在windows下推荐使用x86:vs2008+qt4.7.1编译;x64:vs2010+qt4.7.1。我尝试过使用vs2010和vs2012,遇到很多问题,但是vs2008编译很顺利。所以推荐大家在vs2008下编译。
如果一定要用其它的编译器,建议在这个页面上查看遇到的问题。
http://blog.csdn.net/bjlqw/article/details/25045293
2 编译
注:有很多人问如何编译的问题,其实在Qgis的帮助文档中有很清楚的描述(doc/install.htm),这里就简单说明一下,具体部署还是以官方帮助为准。
VS版本x86只运行vs2008,x64只运行2010,其它版本有问题自已搜(有很多问题)。并且需要win7 SDK和.net framework4(一般win7自己都带)。
找到帮助中的INSTALL.html,在Windos一节中,按照说明编译。
这里要注意:所有安装步骤都在同一个cmd下运行,因为有很多的临时环境变量。
2.1 下载工具
CMake:工程构建软件,可以生成vs的工程文件。
Flex、Bison:语法分析器。用来进行语法分析。
osgeo4w:可以用来下载依赖库。
git:可选,版本管理。
2.2 下载依赖库
按照说明,逐个选择,下载。
这里可以选择下载到本地,然后从本地安装,这样就可以拷贝到其它机器脱机装。
2.3 注册环境变量
这里有点不一样,一是运行OSGEO4W安装目录下的bat文件,注册环境变量(这一步也可以省略,会在Qgis的bat中自动调用,但是这里运行的话可以看到所有OSGEO4W注册信息),另一个运行QGIS的bat文件注册环境变量。然后在cmd下运行vs的devenv.cmd,这样才能使用临时环境变量。
2.4 CMAKE生成sln
调用cmake_gui.exe,配置好之后就可以生成sln。
2.5 编译
在vs中编译最慢的就是core这个库。最容易出问题的也是它。可以先编译qgis这个工程(无插件版),如果没有问题再编译ALLINSTALL(完全版)。
这里要注意看一下编译模式,确定为RelWIthDebugInfo。其它模式会出现问题。
2.6 安装
如果需要编译成单独的安装包,可以编译INSTALL这个工程,能够生成独立的安装包(同时也是二次开发所使用的全部文件)。但是,这只是安装包需要的文件,如果要生成安装包,则需要NSIS工具。
NSIS是一个免费软件,HW NSISEDIT是其GUI版本,能够生成安装包。具有使用向导,可以自己试一下。
3 文档
Qgis的源码可以使用Doxygen生成帮助文件。
这里推荐使用Doxygen生成全部源文件内容。