QGis2.9在windows下的编译以及二次开发包下载

摘要:
请注意,源代码包中的INSTALL文件已更新。我在此记录源代码构建过程,//download.osgeo.org/osgeo4w/osgeo4w-setup-x86_64.exe2。在osgeo4w安装过程中,选择QGis二次开发包。在安装过程中,选择AdvancedInstall下载资源包。-3.选择QGis二次开发包以转到下一个界面。

https://blog.csdn.net/deirjie/article/details/48216773

今天心血来潮,将QGis在github上的代码更新后,又编译了一下。留意到源代码包里面的INSTALL文件有更新,于是本次编译完全基于官方的编译说明。编译过程非常顺利,除了在CMake的第一次configure的时候弹出了一个小错误外,后续的工程生成、VS编译都完全没有遇到错误。特此记下源码build过程,供大家参考。
本次分为两个部分,分别介绍QGis二次开发包的下载以及QGis2.9的源码编译过程。

QGis二次开发包下载

QGis提供了编译好的二次开发包,可以通过osgeo4w这个工具来下载。具体操作步骤如下:

1、下载osgeo4w

下载地址:
32位:http://download.osgeo.org/osgeo4w/osgeo4w-setup-x86.exe
64位: http://download.osgeo.org/osgeo4w/osgeo4w-setup-x86_64.exe

2、在osgeo4w安装过程中选择QGis二次开发包

安装过程中选Advanced Install就可以下载资源包了,安装路径建议保持默认路径。当然也可以修改,只是修改后会牵涉到相应的路径变量的修改,保持默认会比较简单些。
安装界面选Advanced Install
这里写图片描述
-

3、选择QGis二次开发包

一路next到下一步的界面时,在Search栏目里输入“qgis”,可以查询到QGis的相关资源。打开Libs目录,如下图,标红框的库就是QGis可用于二次开发的资源库。其中”ltr”的版本表示long time release, 是比较稳定的发布版本。点击相应的库,使之由符号”n/a”变成一个打上叉的方框形状就表示选中相应的文件了,之后将会下载这个文件。
然后一直“下一步”,下载安装完成之后,就可以在osgeo4w的安装路径下面找到QGis开发相关的include和lib文件夹了。(注意:我之前安装过,所以在相应资源前面显示的是”Keep”字样,没有安装之前应该是”Skip”字样,截图仅供参考)
输入qgis查询资源

-

QGis2.9源码build及编译

build的过程主要是利用cmake进行,关键点在于对依赖库的设置。而 这一步一旦设置好之后,在编译器里进行编译就非常顺利了。

1、下载 osgeo4w 及 cygwin

osgeo4w的下载地址:
32位:http://download.osgeo.org/osgeo4w/osgeo4w-setup-x86.exe
64位: http://download.osgeo.org/osgeo4w/osgeo4w-setup-x86_64.exe
cygwin的下载地址:
32位: http://cygwin.com/setup-x86.exe
64位:http://cygwin.com/setup-x86_64.exe
osgeo4w主要用来安装各种依赖库,而cygwin则是用于安装flex和bison这两个工具。

2、osgeo4w的安装

安装过程与上文中基本一致,所不同的地方在于安装的依赖库。
同样,选择Advanced Install安装方式,并选择默认的Install from internet。安装路径建议保持默认路径。当然也可以修改,只是修改后会牵涉到相应的路径变量的修改,保持默认会比较简单些。
这里写图片描述

这里写图片描述
-
一直点击“下一步”,在安装过程进行到如下图所示界面时,在search栏目中填入相应的依赖库名称进行搜索,点击相应的库,使之由符号”n/a”变成一个打上叉的方框形状就表示选中相应的文件了,之后将会下载这个文件。(注意:我之前安装过,所以在相应资源前面显示的是”Keep”字样,没有安装之前应该是”Skip”字样,截图仅供参考)
这里写图片描述
-

具体需要安装的依赖库包括:
- expat
- fcgi
- gdal
- grass
- gsl-devel
- iconv
- pyqt4
- qt4-devel
- qwt5-devel-qt4
- sip
- spatialite
- libspatialindex-devel
- python-qscintilla

记住在搜索的时候选择下载的文件应该是在Libs目录下的,至于有时候会有很多个名字相近或者后缀名不同的文件被搜索到,大部分都可以通过文件描述来排除不合适的文件。不过不确定的话就都下载也没关系的,原则就是宁多勿少。
然后一直”下一步”就可以顺利安装完成了,完成后会有一个提示让重启电脑,重启一下就好了。

3、cygwin的安装

这个软件的安装界面同osgeo4w基本相同,也是同样Install from internet,就可以一路”下一步”进行下去了。同样,安装路径建议保持默认路径。当然也可以修改,只是修改后会牵涉到相应的路径变量的修改,保持默认会比较简单些。
到达选择安装资源库文件的界面,同样在Search栏目中填入相应的名称搜索即可。这里需要搜索安装的是”flex”和”bison”。要注意的是,这一次应该选择Devel目录下的资源文件,而不是Libs。这个安装不需要重启,安装完成关掉就行。(注意:我之前安装过,所以在相应资源前面显示的是”Keep”字样,没有安装之前应该是”Skip”字样,截图仅供参考)
这里写图片描述

4、下载安装Cmake

下载地址:
http://www.cmake.org/files/v3.0/cmake-3.0.2-win32-x86.exe
这个安装就跟windows的大多数软件一样很常规了,就不赘述了。

5、源代码包生成IDE工程文件

到达这一步,准备工作就基本完成了,可以开始正式生成IDE的工程文件了。我后续的步骤与以前的文章有很大不同(以前写的QGis1.8版本的文章链接),之前那个方法比较繁琐,但也是可行的。现在这个方法更为简洁,而且基本不会出现错误。
首先,新建一个文本文件,并将它的后缀名改成”.bat”,表示批处理文件。用记事本打开这个文件,将下面的代码粘贴进去:

@echo off
set VS10COMNTOOLS = D:Program FilesMicrosoft Visual Studio 10.0Common7Tools
call "D:Program FilesMicrosoft Visual Studio 10.0VCvcvarsall.bat" x86

set INCLUDE=%INCLUDE%;C:Program FilesMicrosoft SDKsWindowsv7.1Ainclude
set LIB=%LIB%;C:Program FilesMicrosoft SDKsWindowsv7.1Alib

set OSGEO4W_ROOT=C:OSGeo4W
call "%OSGEO4W_ROOT%ino4w_env.bat"
path %PATH%; %PROGRAMFILES%CMakein; c:cygwinin

@set GRASS_PREFIX=c:/OSGeo4W/apps/grass/grass-6.4.4
@set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%include
@set LIB=%LIB%;%OSGEO4W_ROOT%lib;%OSGEO4W_ROOT%lib

@cmd

这段代码当中,我们需要注意的地方如下:
“VS10COMNTOOLS”:根据Visual Studio的版本不同会有不一样的地方,你只需要查看后面的路径是不是与你本机VS安装路径中一致就行。如果不一致,则只需将版本对应的地方改成与你安装的版本一致的路径。同样第二行”Call”中的路径也要对应于VS版本号。例如如果是VS2008,这两行代码就应该变成:

set VS90COMNTOOLS=%PROGRAMFILES%Microsoft Visual Studio 9.0Common7Tools
  call "%PROGRAMFILES%Microsoft Visual Studio 9.0VCvcvarsall.bat" x86
  • 1
  • 2

接下来的两行代码中,指明的windows SDK路径也会根据windows版本不同而不同。这里我使用的是windows 10,因此后面的路径为”v7.1A”。大家只需更改为对应自己机器的相应版本号路径就行了。
讲到这里我想大家都看明白了,再接下来的代码全部都是与osgeo4w、cmake和cygwin的安装路径有关的。如果之前安装的时候默认路径,那么这里就不需要改。安装的时候把路径改了,这里就把相应的路径字符串改成安装时指定的路径。
修改完后,保存这个”.bat”文件,文件名无所谓。

然后,按快捷键win+R调出运行窗口,并输入”cmd”,回车,打开命令行窗口。在命令行窗口中执行刚刚新建的”.bat”文件。执行完毕后会设置好相应的依赖库路径变量。
这里写图片描述

然后继续运行“cmake-gui.exe”,打开CMake。
这里写图片描述

进入GUI,首先分别在源代码路径和生成文件路径选择相应的文件夹位置。之后,点击Configure按钮。
这里写图片描述

选择对应的编译器版本,这里选用的是Visual Studio 10 2010
这里写图片描述

点击确定就开始配置源代码文件了。我配置的时候出现了一次错误,如下图所示。这个问题是由于缺少了某些插件的依赖库导致的,我们可以通过不Build这些插件来避免这个错误。
这里写图片描述

事实上,必须的编译选项我们只要”With_Desktop”以及” With_Internal_Qextserialport”就行了。
这里写图片描述
这时,再点击Configure按钮就没有错误了,然后再点击旁边的Generate按钮,就能成功生成VS2010的工程文件了。
这里写图片描述
这里写图片描述

6、源代码工程编译

双击打开”qgis2.9.0.sln”这个工程文件,就可以加载工程到VS中了。总共有148个项目。
这里写图片描述

先将编译模式改成”RelWithDebInfo”
这里写图片描述

之后生成项目就行了。
当然,你也可以选择“ALL_BUILD”,但这样会比较耗时。比较快速的办法是,先全部选中子工程,右键,卸载项目
这里写图片描述
然后只用单独加载
- ui
- qgis_core
- qgis_analysis
- qgis_gui
- qgis_app
- qgis
- ogrprovider
- gdalprovider
单独生成这几个项目,就能够成功编译了。生成”exe”运行之前,需要将所需的”dll”文件都拷贝到”exe”的目录下。最简单的做法就是将你本机QGis的安装路径找到,在”bin”文件夹下面选中所有”dll”文件,然后一起复制到编译生成的”exe”文件夹里面。当然,没有安装QGis的话,需要将Qt4的”dll”文件、osgeo4w安装路径下”bin”文件夹中的”dll”文件,以及别的依赖的”dll”文件都拷贝过来才能正确运行。
需要说明的是,这样编译出来的exe运行后可能会有个别工具栏图标不显示的情况,但除此之外没有别的问题。

最后

我按照这种方式编译并没有产生任何编译错误,我希望参照我的方法的朋友也能顺利编译,如果有问题可以多多交流和分享,谢谢。

免责声明:文章转载自《QGis2.9在windows下的编译以及二次开发包下载》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇查理芒格思维模型清单Spring Cloud Zuul性能调整下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

npm查看本地包版本号和远程包的版本号

npm 查看远程包 第一种方法: npm info <packageName> 第二种方法: npm view <packageName> versions --json npm查看本地安装的包版本号 npm ls <packageName> // 本地包 npm ls <packageName&...

Linux命令(一)

一、cd  切换文件夹   绝对路径(以/根目录开头的路径)   相对路径(基于某个跟目录下的路径,不以/根目录开头)   cd /home  绝对路径(以根目录开头)   cd admin  相对路径(不以根目录开头)   cd ..  返回上级目录   cd ~  返回到自己的家目录(/home/admin)   cd -  回放功能  pwd  查看...

NetworkX系列教程(10)-算法之一:最短路径问题

小书匠Graph图论 重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定先把图论中常用算法弄个明白在写这部分. 图论常用算法看我的博客: 下面我将使用NetworkX实现上面的算法,建议不清楚的部分打开两篇博客对照理解. 我将图论...

Delphi 10.3.3最新消息

有朋友说,已经开始内测,预计10月末发版,按最新的路线图,此版本支持iOS 13及Android 64位。 2019-11-18,今天,下载及注册机都来了,快下载安装,试用吧。 需要的话加入QQ群209321818,到群文件中去下载。 注册机下载地址:https://pan.baidu.com/s/1CvZpI2f0EBVeBnAQcWf5Kg提取码:lf...

springboot使用xml配置dubbo读取yml占位符

约定优于配置是springboot简化配置的思路,其中它提供的自动配置、基于注解配置为我们搭建项目框架带来了很大的便利。 使用springboot的项目跟仅使用spring的项目相比,少了很多xml配置文件,基于自动配置或者使用注解和配置类就可完成大多数配置。 springboot + dubbo搭建微服务工程:(springboot版本2.0.4.REL...

java加载properties配置文件的几种方法

 自由自在 废话省略... 1.普通方法 直接上我写的一共配置文件获取类: 配置文件 socket.server.address = 127.0.0.1 socket.server.port = 8511 socket.connect.timeout = 3000 package com.adao.common; import java.io.IOExc...