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


    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运行后可能会有个别工具栏图标不显示的情况,但除此之外没有别的问题。

    最后

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

  • 相关阅读:
    《软件工程课程总结》
    课后作业-阅读任务-阅读笔记-4
    两个不同的网络,进行数据同步的设计思路
    IDEA清理缓存项目
    IDEA快捷键
    IDEA如何添加多个maven项目工程
    sqlserver数据库中的mdf文件太大,表空间分析和表空间释放
    关于AOP的面向切面编程
    关于.net进行爬虫
    关于调用别人接口的一些问题总结
  • 原文地址:https://www.cnblogs.com/leoking01/p/14227164.html
Copyright © 2020-2023  润新知