QT官网下载:http://download.qt.io/archive/qt/
我安装的QT 版本是:qt-opensource-windows-x86-msvc2015_64-5.7.1.exe
下载并安装以下软件包:
Tool | Website |
---|---|
CMake | https://cmake.org/files/v3.7/cmake-3.7.2-win64-x64.msi |
GNU flex, GNU bison and GIT | http://cygwin.com/setup-x86.exe (32bit) or http://cygwin.com/setup-x86_64.exe (64bit) |
OSGeo4W | http://download.osgeo.org/osgeo4w/osgeo4w-setup-x86.exe (32bit) or http://download.osgeo.org/osgeo4w/osgeo4w-setup-x86_64.exe (64bit) |
ninja | https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-win.zip |
OSGeo4W不仅为当前的QGIS发行版提供了准备好的软件包,而且还为每个主机的夜间构建提供了可用的软件包,同时也提供了构建它的大部分依赖关系。如果用户要要编译32位的QGIS请用32位的OSGeo4w下载,如果用户要要编译64位的QGIS请用64位的OSGeo4w。32位的在下载时会下载32位的依赖库,64位的在下载时会下载64位的依赖库。
对于QGIS构建,您需要从cygwin安装以下软件包:
注:
链接:http://pan.baidu.com/s/1cpfWtg 密码:igia
http://qgis.org/downloads/qgis-latest.tar.bz2
和OSGeo4W(选择Advanced Installation):
这也可以选择上述软件包所依赖的软件包。要注意的是,上述所有的软件包或依赖不能有空格或中文。
要启动具有VC ++和OSGeo4W变量的环境的命令提示符,将创建以下批处理文件(假定上述包安装在默认位置):
@echo off
set VS140COMNTOOLS=%PROGRAMFILES%\Microsoft Visual Studio 14.0\Common7\Tools\
call "%PROGRAMFILES%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
set INCLUDE=%INCLUDE%;%PROGRAMFILES%\Microsoft SDKs\Windows\v7.1A\include
set LIB=%LIB%;%PROGRAMFILES%\Microsoft SDKs\Windows\v7.1A\lib
set OSGEO4W_ROOT=C:\OSGeo4W
call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
path %PATH%;%PROGRAMFILES%\CMake\bin;c:\cygwin\bin
@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
将上述命令放入一个文本文件内,并将后缀改为“.bat“,然后以”管理员权限运行“!在执行bat后,有可能会执行不成功,那我们可以通过手动设置各个环境变量的方式进行设置。(我也是这么做的)。
在某个地方创建一个“build”目录。这将是生成所有构建输出的位置。
找到CMake的安装目录,以管理员的方式运行"cmake-gui.exe",然后设置qgis源码包的目录和项目的构建目录:
点击“Configure ”启动配置并选择VisualStudio 14 2015/VisualStudio 14 2015 X64并保留本机编译器,然后单击完成。
“Configure ”过程中,可能会出现配置不正常的项目,如果某个依赖项没有链接到,请手动选择链接目录。以下是我的配置信息,供您参考:
配置到“Configuring done",然后点击“Generate" 生成VS2015的项目解决方案,直到“Generating done”,然后在项目目录中打开qgis-x.y.z.sln文件。
在使用ALL_BUILD目标构建QGIS之前,将Debug中的解决方案配置更改为RelWithDebInfo(发布调试信息)或Release(否则需要不包括的调试库)。
构建过程中可能会出现无法链接的错误,错误信息出现在proj.lib库中,我分析的主要原因可能是,下载的proj.lib不正常。所以我们需要自己生成proj4的库,生成方法请查看我的博客:http://blog.csdn.net/octdream/article/details/71307943
生成proj4后,将生的proj4的lib,include,dll覆盖OSGEO4W的对应的库文件(include,bin,lib)。
在构建过程中可能会出现“找不到EXPAT.H"文件的问题,我们只需要手动更改"EXPAT.H"所在的绝对路径就可以。
在构建过程中会出现如下错误:无法解析的外部符号_WinMain@16
解决方法是:选中该项目 然后 右键 -> 属性 -> 链接器->高级 -> 入口点 加入 mainCRTStartup,
需要修改的工程包括:qgis,qgis_bench,qbrowser,qgis_help
最后再次生解决方案,完美生成整个项目。
如果出现其它问题,或有什么错误欢迎留言指正,谢谢!!!