QGIS 2.14编译终极教程 (QGIS 2.14.16 && Qt-4.8.6 && VS2010 )

版权声明:版权声明:本文为博主原创文章,博客地址:https://blog.csdn.net/m0_37287361/,未经博主允许不得转载。 https://blog.csdn.net/m0_37287361/article/details/83510481

编译前须知(有必要的几句啰嗦)

1、莫被这个教程的篇幅吓到,其实篇幅不大。就算大家觉得太啰嗦,请见谅,笔者写教程就是喜欢详细,喜欢面面俱到。再者,本教程是为了解答很多人编译QGIS遇到的头疼问题,虽然可能离一解破万疑还差好远,但是总要尽力迈出这一步。
2、教程对版本的要求近乎苛刻,原因很简单,笔者(小木君)编译了N次QGIS,发现QGIS的依赖项很多,而对于某个特定依赖项,其版本严重影响该依赖项与其它依赖项的兼容。本教程使用的版本参见下面第3点介绍。如果版本不匹配,例如非2.14版本的QGIS,鉴于笔者没有亲身尝试过,不敢凭空捏造,因此恕不能帮上忙。
3、本教程编译QGIS的主要软件环境介绍:
1)Windows 7 64位 旗舰版
2)Visual Studio 2010 旗舰版
3)Qt-4.8.6 32位
4)Cmake-3.4.3 32位
5)Cygwin 32位
6)OSGeo4W 32位
7)QGIS-2.14.16.7z (待编译的源码)
4、关于32位和64位的选择:
这里,32位和64位指的是Visual Studio 2010、Qt、Cmake、Cygwin 、OSGeo4W 等软件的版本(windows 7系统的版本没关系,32位或64位皆可),编译QGIS前,上述软件的版本必须保持一致,否则会存在兼容性问题。笔者尝试过64位的编译,然而由于笔者使用的Qt 4.8.6是32位的软件等原因,编译失败,因此笔者最终选择32位,编译成功。
5、QGIS编译不难,但也不是很简单。大家按照下面的步骤都能编译成功。如有任何疑问,欢迎在下方留言或关注笔者的博客,昵称“木之野火”,ID“m0_37287361”

编译过程

1、软件下载:
1)Windows 7 64位 旗舰版(32位也可)、Visual Studio 2010 旗舰版的安装非常基础,在此不再介绍;
2)Qt-4.8.6 32位
下载地址(笔者已将可用软件上传至百度网盘):
链接:https://pan.baidu.com/s/1AsKPSzc9vczclANBaSLr1g 密码:76yy
下载完成后安装,安装位置自定,笔者直接安装在C盘根目录,在系统变量Path里添加: C:\Qt\4.8.6;C:\Qt\4.8.6\bin;
3)Cmake-3.4.3 32位
下载地址(笔者已将可用软件上传至百度网盘):
链接:https://pan.baidu.com/s/1ASeASZcxVhC2vfQhmRkLOA 密码:e1tl
下载完成后安装,安装位置自定,笔者安装在D盘。安装过程中有关于是否将cmake/bin添加到环境变量的提示,选择确认即可
4)Cygwin 32位
下载地址:https://cygwin.com/install.html
在这里插入图片描述
下载32位的exe安装程序后,安装过程参见下面 “2、依赖库下载” 部分
5)OSGeo4W 32位
下载地址:http://trac.osgeo.org/osgeo4w/
在这里插入图片描述
下载exe安装程序后,安装过程参见下面 “2、依赖库下载” 部分
6)QGIS-2.14.16.7z 源码
下载地址:https://download.csdn.net/download/yuanhengzhw/9907352
下载后解压到非中文、无空格路径
2、依赖库下载:
这部分的依赖库下载主要是指利用前面已经下载好的Cygwin和OSGeo4W,下载编译 QGIS所需的依赖库,下载依赖库的过程实际就是安装Cygwin和OSGeo4W的过程。
1)安装Cygwin的同时下载flex、bison、git,按以下顺序即可完成
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进行到上述最后的图片所示位置时,在搜索栏中依次搜索flex、bison、git,鼠标点击将Default改为Install;当上面3个依赖项都选择完毕后,点击下一步开始安装,安装的依赖项可以多装,不可少装。
2)安装OSGeo4W的同时下载以下依赖项:
expat、fcgi、gdal、grass、gsl-devel、iconv、pyqt4 、qt4-devel、qwt5-devel-qt4、sip、spatialite、libspatialindex-devel、qscintilla、python-qscintilla、python、geos、proj、qca
流程图如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进行到上述最后的图片所示位置时,在搜索栏中依次搜索上述依赖项,鼠标点击将Default改为Install;所有依赖项选择完毕后,点击下一步开始安装,安装的依赖项可以多装,不可少装。
2、配置环境变量:
完成依赖库的下载后,接下来进行环境变量的配置。由于编译QGIS所需的依赖库已经通过Cygwin和OSGeo4W下载,故只需配置Cygwin和OSGeo4W的环境变量即可。在系统变量Path里添加: C:\cygwin;C:\cygwin\bin;C:\cygwin\lib;C:
OSGeo4W;C:\OSGeo4W\bin;C:\OSGeo4W\include;C:\OSGeo4W\lib;
配置完成后,启动命令行,输入:echo %path% 回车即可使得配置的环境变量立即生效,而不用注销或重启。
3、Cmake配置与构建:
1)打开安装好的Cmake工具,“Where is the source code”一栏选择上述解压QGIS-2.14.16.7z得到的文件夹,“Where to build the binaries”一栏选择生成vs工程的目标路径,如图所示:
在这里插入图片描述
2)点击“configure”,在弹出对话框选择“Visual Studio 10 2010”,点击“finish”;
3)第一次“configure”会报错,将“WITH_BINDINGS”等项取消,只保留“WITH_DESKTOP”、“WITH_INTERNAL_QEXTSERIALPORT”、“WITH_QWTPOLAR”三项即可。
在这里插入图片描述

在这里插入图片描述
4)还没完,敲黑板,这一步是关键步骤。下面是一些关键的依赖项配置。稍有差池,不能保证后期编译成功。
(1)PYTHON_LIBRARY:C:/Python27/libs/python27.lib (这里需要自己安装Python,笔者使用的版本为Python 2.7.9 64 bit) 如果没有报错缺失python.lib,可以跳过这一步
(2)SETUPAPI_LIBRARY:C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib/SetupAPI.Lib
(3)设置QSCINTILLA_INCLUDE_DIR和QSCINTILLA_LIBRARY:分别为C:\Qt\4.8.6\include以及C:/Qt/4.8.6/lib/qscintilla2_qt4d.lib
(4)编译qwt,假设编译后的qwt路径为:C:/Qwt-6.1.2,那么设置QWT_INCLUDE_DIR为C:/Qwt-6.1.2/include,设置QWT_LIBRARY为C:/Qwt-6.1.2/lib/qwt.lib 不会编译?莫慌,编译过程 so easy,参见我的另一篇博客:《qwt 6.1.2的编译与安装》
5)继续点击“configure”,直到不报错为止(如果还有报错,参见下面的“注意”),点击“generate”生成,生成的vs工程在前面你配置Cmake时设置的“Where to build the binaries”对应的路径下。

注意
如果Cmake提示缺少某个依赖库,报错内容形如:“cannot find xxx.lib”,原因一般有二:
1)第一个原因是这个依赖库已经下载成功,但是Cygwin和OSGeo4W的环境变量配置不对,或者未生效。解决办法是检查前面Cygwin和OSGeo4W的环境变量配置,务必使其生效。再次提醒:Cygwin和OSGeo4W的安装路径不能有中文和空格!
2)第二个原因是确实在下载依赖库的时候遗漏了该依赖库,不要紧,缺啥补啥,这时只需重新安装Cygwin或者OSGeo4W,重装哪个取决于报错缺失的库来自于谁,除flex、bison、git之外,其它依赖项都是在安装OSGeo4W的时候下载的。重装Cygwin或者OSGeo4W时,在搜索依赖库的时候搜索、安装缺失的依赖库即可。Cygwin或者OSGeo4W安装是增量式安装,重装OSGeo4W时,已经安装的库不会丢失。
4、源码编译:
1)在Cmake配置的输出路径下找到后缀为“.sln”的解决方案文件,用VS2010双击打开,等待VS将整个解决方案加载进来,如图所示,对于本教程使用的QGIS2.14.16.7z,应该一共由198个项目
在这里插入图片描述
2)接下来进行编译。将编译类型从Debug更换为RelWithDebInfo,然后在左侧198个项目中找到qgis,设置为启动项,如下图。然后在vs2010的菜单栏选择“生成”,点击“重新生成解决方案”,等待编译完成(编译需要不少时间,小木君使用的联想Thinkpad T460 i7 512G固态硬盘,需要40分钟以上)。在这里插入图片描述
3)笔者在编译过程中没有遇到报错(如果大家在编译过程中有报错,欢迎在下方留言,本小木君会尽力帮助解答)。
4)编译完后,点击启动,报错内容忘记截图了,但大概是“无法加载xxx.dll”之类的错误,意思是qgis启动时缺失某个或某些dll。莫慌,这些dll存在的位置不外乎在你的Cygwin安装路径、OSGeo4W安装路径、Qt安装路径下。去这些文件夹中找到该dll。拷贝到上述编译完后生成的qgis.exe的同级目录下。例如,提示缺失qscintilla2_qt4d.dll和qwt.dll,这两个dll位于你的Qt安装路径下,只需找到后拷贝到qgis.exe的同级目录下即可。
5、启动QGIS:
见证奇迹的时刻到了。
点击“启动调试(F5)”,可以看到成功启动QGIS。
在这里插入图片描述
在这里插入图片描述
接下来就可以开启你奇妙的QGIS之旅了。

写在后面的话

    本教程经小木君亲身实践所得,已经力求仔细完整,然而仍可能存在疏漏之处。如果大家在使用 本教程的过程中有任何疑问,欢迎在下方留言,小木君会第一时间为大家解答。
    欢迎关注我的博客,昵称“木之野火”,ID“m0_37287361”,小木君诚愿和大家一起学习进步。      

猜你喜欢

转载自blog.csdn.net/m0_37287361/article/details/83510481