编译qgis小结

来源:互联网 发布:mp3音乐下载软件 编辑:程序博客网 时间:2024/06/04 19:48

简单小结一下:

主要参考: http://www.qgis.org/api/INSTALL.html  

 

==============================================

安装前注意事项:文件夹名字尽量不要用中文和空格,可能会出错

==============================================

 

0、下载QGIS和QGIS源码

0.1 下载QGIS,我直接在官网上的下载页面进行下载:http://hub.qgis.org/projects/quantum-gis/wiki/Download

目前的版本是1.8.0,直接的下载地址是: http://qgis.org/downloads/QGIS-OSGeo4W-1.8.0-2-Setup.exe

0.2 下载QGIS源码,可以直接在上面的下载页面的最下方下载源码

我直接下载压缩好的包,因为我平时很少用git,其地址是http://qgis.org/downloads/qgis-1.8.0.tar.bz2

也可以通过git源码管理器下载,git clone git://github.com/qgis/Quantum-GIS.git

 

1、下载编译工具

1.1 下载并安装CMake,由于我之前已经有过用cmake编译的经验,直接使用已经安装好的版本,我用的是2.8.8版本

1.2  下载并安装Flex和Bison,由于网站给出的链接已经无效,我又找了sourceforge上的版本 http://sourceforge.net/projects/winflexbison/ ,

我直接放在了cmake文件夹下 直接的下载地址是:http://jaist.dl.sourceforge.net/project/winflexbison/win_flex_bison-2.3.zip

1.3 下载OSGeo4W,其下载地址是:http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe

 

2、使用OSGeo4W下载并安装一些qgis需要的库

2.1 启动OSGeo4W,选择 Advanced Installation 进行高级可配置化安装,点击下一步

2.2 Install from Internet 点击下一步,设置安装根目录,我设置为D:\OSGeo4W,点击下一步,设置包目录,我也设置为D:\OSGeo4W

此处也可以通过仅先下载,设置包目录,等下载完后,可通过再次启动进行安装,设置安装目录,这样可以进行离线操作,或进行从别的机器下载到另一台机器安装

2.3 在选中包页面中,select packages 按分类中找到libs下勾选以下必须库

  • expat
  • fcgi
  • gdal                  -- 这个可以不选择,使用下一步骤QGIS中的安装即可
  • grass                -- 这个可以不选择,使用下一步骤QGIS中的安装即可
  • gsl-devel
  • iconv
  • pyqt4
  • qt4-devel
  • qwt5-devel-qt4
  • sip
  • spatialite
  • libspatialindex-devel
  • python-qscintilla

    2.4 等待下载和自动安装

     

    3、安装QGIS到OSGeo4W安装包一致的目录

    其中QGIS中大多数的库都是用OSGeo4W下载好的离线包进行安装的,因此这个过程和2中的过程的作用具有一定的相似性。

    其目的是利用现有的QGIS安装程序,免去下载gdal geos grass proj osgEarth 等与GIS相关比较大的"大库"

    需要注意的是安装时选择的目录需要与OSGeo4W安装包一致的目录

     

    4、在OSGeo4W目录下写个cmd批处理脚本,比如我取名叫setup.bat

    我是依照网站上的例子按自己的目录情况写的

    @echo off 
    path %SYSTEMROOT%\system32;%SYSTEMROOT%;%SYSTEMROOT%\System32\Wbem;D:\CMake-2.8.8\bin; 
    set PYTHONPATH=

    set VS90COMNTOOLS=%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\Tools\ 
    call "%PROGRAMFILES%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86

    set INCLUDE=%INCLUDE%;%PROGRAMFILES%\Microsoft Platform SDK for Windows Server 2003 R2\include 
    set LIB=%LIB%;%PROGRAMFILES%\Microsoft Platform SDK for Windows Server 2003 R2\lib

    set OSGEO4W_ROOT=D:\OSGeo4W 
    call "%OSGEO4W_ROOT%\bin\o4w_env.bat"

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

    @cmd

     

    以上与微软开发环境相关的东西可能本机并没有安装,但也可以先这么写着,应该不会报错

     

    5、进行CMake编译

    5.1 运行cmd,运行步骤4的脚本,比如我在cmd中

    C:\>  D:\ 回车

    D:\> D:\OSGeo4W\setup.bat

    运行后显示OSGEO4W home is D:\OSGeo4W

    5.2 从cmd中运行cmake-gui.exe,重点是需要从cmd中运行,这样才可以获得到相应于5.1执行后得到的一些变量

    5.3 在 Where is the source code 中输入源码的位置,比如我将源码解压在D:\QGIS下,

    在 Where to build the binaries 中输入生成的工程目录,比如我设置在D:\QGIS\build下

    5.4 点击Configure时选择自己的vs环境,我选择了vs2010

    5.5 遇到找不到Flex和Bison路径时,需要把刚才下载的Flex和Bison的目录设置后再继续

    5.6 遇到找不到geos、sqlite3等包含头文件目录时,统一设置为D:\OSGeo4W\include,找不到库目录时统一设置为D:\OSGeo4W\lib,

    5.7 遇到其他一些py的问题,很可能是步骤2没安装好

    5.8 最后还可能遇到一个问题是setupapi找不到,可以先暂时随便设置一个错的

    5.9 Configure完后没问题了就可以genarate,有问题就需要年是不是步骤2和步骤4的过程有问题

    5.10 如果需要其他一些配置,可以自己研究

     

    =================================================

    关键问题解析

    1、使用OSGeo4W和QGIS的安装包都是为了提供一整套代码编译过程中需要依赖的工具和库,

    一方面是c++的头文件和lib,另一方面特别是python相关的东西我是搞不定的

    如果发现有文件找不到,可以先查找一下文件夹下是否存在,如果不存在可能是下载安装有问题,

    如果存在,但找不到再看是不是目录设置错误,或者是脚本路径没写对

    2、从cmd里运行,并且写步骤4中的脚本都只是为了提供一些路径的快速设置,

    以便cmake只需要一个根目录就可以快速找到其他的目录

    如果你发现cmake中还需要设置大量的位置问题,那就是没写好bat

    3、目录的设置还是有一点诀窍的,源码是需要依赖库文件的,

    因此所有的库文件肯定是要统一管理,而OSGeo4W的组织方式统一,很方便使用,

    源码可以不和OSGeo4W放一起,但最后生成的程序是需要再放到其依赖库下进行链接dll

  • 0 0
    原创粉丝点击