QGIS在windows下的编译

1 工具

OSGeo4W、Cmake 、GNU bison 与 GNU flex

2 配置开发环境

2.1 VS2010安装

……

2.2 Qt与插件安装

Qt版本4.8.5,插件版本1.1.11。
下载地址: http://download.qt.io/official_releases/vsaddin/

2.3 OSGeo4W安装及所需库下载

编译32位的QGIS时,下载安装32位的OSGeo4W;编译64位QGIS时,下载安装64位的OSGeo4W。因为使用不同版本的OSGeo4W时,下载的库是对应版本的库。

2.4 Cmake安装

Cmake需要2.8以上版本,可直接从https://cmake.org/download/,解压即可。

2.5 GNU bison 与 GNU flex 安装

bison和flex要用较新的版本,且安装目录不能用空格。

2.6 下载QGIS2.8.9源码

3 使用Cmake配置工程

3.1 配置环境变量

写一个脚本文件,设置 OSGeo4W等变量(将OSGEO4W、Bison、Flex、Cmake设置为自己的路径)。

@echo off

set LIB=%LIB%;C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib/x64

set OSGEO4W_ROOT=D:/OSGeo4W
call "%OSGEO4W_ROOT%/bin/o4w_env.bat"
path %PATH%;D:/win_flex_bison-latest;D:/cmake-2.8.12-win32-x86/bin


@set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%/include
@set LIB=%LIB%;%OSGEO4W_ROOT%/lib;%OSGEO4W_ROOT%/lib

@cmd

3.2 配置工程并编译

  1. 运行脚本文件,并从命令行启动Cmake
    QGIS在windows下的编译_第1张图片
  2. 选择源代码目录和输出目录,点击Configure。将没有找到的路径手工设置,修改自动设置出错的路径。
    QGIS在windows下的编译_第2张图片
    注意: QextSerialPort 需要自己编译,参照http://www.tuicool.com/articles/naEjAzf
  3. 点击generate生成VS2010工程。
  4. 编译之前,还需要做如下修改:

    1. 将Bison和Flex目录下的unistd.h复制到Microsoft Visual Studio 10.0安装目录下的\VC\include”目录中。
    2. 复制OSGeo4W目录下include\spatialite.h替换OSGeo4W目录下include\spatialite\spatialite.h。
    3. 修改QGIS源码src/core/pal/feature.cpp文件第85行finite为_finite。修改前:assert( finite( lx ) && finite( ly ) );修改后 assert( _finite( lx ) && _finite( ly ) )
  5. 打开Cmake输出目录下的qgis2.8.9.sln。可以全部编译,也可以只编译部分重要的qgis、qgis_analysis、qgis_core、qgis_gui、ui、ogrprovider、gdalprovider。

你可能感兴趣的:(QGIS在windows下的编译)