QGIS2.3+VS2010+Win7编译(更新2014-5-5)

QGIS2.3.0官方推荐采用VS2008进行编译,GUI使用Qt4.7.1-VS2008,脚本使用Python2.7.4。QGIS 插件包括CPP插件和Python插件两种,使用Qt4加载CPP插件,使用Python2加载Python插件,有些Python插件(例如processing插件)依赖于PyQt4,PyQt4依赖于Qt4-VS2008。QGIS的有些依赖库(例如Qwt5)依赖于Qt4-VS2008。

若采用VS2010直接进行编译,在调用QGIS的过程中会出现兼容性错误,例如加载processing插件时引起异常中断错误,导致程序崩溃。

安装Qt4.8.5-VS2010之后,采用VS2010进行编译,在调用QGIS的过程中依然出现兼容性错误,例如加载Qwt5依赖库时引起异常中断错误,导致程序崩溃。

因此,采用VS2010进行编译之前,需要将Qt4-VS2008更新为Qt4-VS2010版本,包括所有使用了Qt4-VS2008的插件和依赖库。

 

1、安装CMake 2.8

(1)下载地址:http://www.cmake.org/

(2)安装路径:自定义,例如:C:\GNU\CMake2.8

 

2、安装GNUWin32 flex 2.5和bison 2.4

(1)下载地址:http://gnuwin32.sourceforge.net/packages/flex.htm和.../bison.htm

(2)安装路径:自定义,例如:C:\GNU\GnuWin32

说明:Flex/Bison常用安装程序有两种:GnuWin32 Flex 2.5/Bison 2.4和Win flex-bison 2.5 (http://sourceforge.net/projects/winflexbison/),推荐安装GnuWin32Flex 2.5/Bison 2.4。

 

3、下载QGIS 2.3源代码

(1)下载地址:https://github.com/qgis/QGIS

(2)解压路径:自定义,例如:C:\qgis230-source\QGIS-master

说明:源代码压缩包中提供了安装说明(QGIS-master\doc\INSTALL.html)。

 

4、通过OSGeo4W Installer 32bit安装QGIS 2.3依赖库

(1)下载地址:https://trac.osgeo.org/osgeo4w/

(2)运行OSGeo4W,选择Advanced Install -> Install from Internet or Install from LocalDirectory –> Root Directory (Default: C:\OSGeo4W) -> Select Packages: qgis-full-dev。

(3)缺省QGIS 2.3开发包(qgis-full-dev)未安装Qwt5开发包(Qwt5-devel-qt4)和Spatialindex开发包(libspatialindex-devel),需要单独安装这两个开发包。

说明:QGIS依赖库头文件位于C:\OSGeo4W\include路径下,静态库文件位于C:\OSGeo4W\lib路径下,qmake.exe等工具位于C:\OSGeo4W\bin路径下,外部可执行程序包位于C:\OSGeo4W\apps路径下。

 

5、设置环境变量

(1)打开系统命令提示符,在控制台模式下设置环境变量中

(2)调用OSGeo4W\bin\o4w_env.bat批处理文件,将自动递归调用OSGeo4W \etc\ini\*.bat批处理文件,设置OSGeo4W运行环境变量,例如:

call "C:\OSGeo4W\bin\o4w_env.bat"

其中用于CMake生成VS解决方案的变量包括:

OSGEO4W_ROOT=C:\OSGeo4W

PATH=%OSGEO4W_ROOT%\bin;%PATH%

PYTHONHOME=%OSGEO4W_ROOT%\apps\Python27

PATH=%OSGEO4W_ROOT%\apps\Python27\Scripts;%PATH%

说明:CMake使用PYTHONHOME查找SIP包所在路径。

(3)在环境变量INCLUDE和LIB中添加OSGeo4W依赖库头文件和静态库文件所在路径,或者在环境变量PATH中添加依赖库头文件和库文件所在路径。例如:

setINCLUDE=%OSGEO4W_ROOT%\include;%INCLUDE%

set LIB=%OSGEO4W_ROOT%\lib;%LIB%

(4)定义GRASS_PREFIX,例如:

setGRASS_PREFIX=c:/OSGeo4W/apps/grass/grass-6.4.3

注意:在GRASS_PREFIX路径中不要使用’\’代替’/’,否则CMake将产生错误。

(5)在环境变量PATH中添加添加GNUWin32 Flex/Bison可执行文件所在路径,例如;

set C:\GNU\GnuWin32\bin

(6)在环境变量PATH中添加CMake可执行文件所在路径,例如:

C:\GNU\CMake2.8\bin

(7)调用VS2010的\VC\vcvarsall.bat批处理文件,将自动递归调用VC\bin\vcvars32.bat和%VS100COMNTOOLS%vsvars32.bat批处理文件,例如:

call "C:\Program Files\MicrosoftVisual Studio 10.0\VC\vcvarsall.bat" x86 或

call "C:\Program Files (x86)\MicrosoftVisual Studio 10.0\VC\vcvarsall.bat" x86

其中用于CMake生成VS解决方案的变量包括:

VS90COMNTOOLS =C:\Program Files\MicrosoftVisual Studio 10.0\Common7\Tools\或

VS90COMNTOOLS =C:\Program Files (x86)\MicrosoftVisual Studio 10.0\Common7\Tools\

LIB=”C:\Program Files\MicrosoftSDKs\Windows\v7.0A\Lib; %LIB%;”或

LIB=”C:\Program Files (x86)\MicrosoftSDKs\Windows\v7.0A\Lib; %LIB%;”

说明:CMake需要在环境变量PATH或LIB中查找Microsoft SDKs 的SetupAPI.Lib,找到后定义SETUPAPI_LIBRARY变量。

 

特别注意:系统环境变量PATH中路径之间分号的前后不要加空格,否则CMake解析路径时出现错误。

 

6、复制GNUWin32 Flex/Bison的unistd.h头文件

QGIS编译时需要GNUWin32Flex/Bison的unistd.h头文件,将GnuWin32\include\unistd.h头文件复制到VC\include路径下,例如:C:\ProgramFiles\Microsoft Visual Studio 10.0\VC\include或C:\Program Files(x86) \Microsoft Visual Studio 10.0\VC\include。

说明:在环境变量INCLUDE或PATH中添加GNUWin32 Flex/Bison的unistd.h头文件所在路径,VS2010编译时仍然找不到unistd.h,因此必须复制该文件。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值