QGIS2.18.4+QT5.7.1+VS2015编译方法
2017-04-21 17:18
246 查看
1.安装QT
QT官网下载:http://download.qt.io/archive/qt/我安装的QT 版本是:qt-opensource-windows-x86-msvc2015_64-5.7.1.exe
2.安装VS2015 与QT Addin
3.下载并安装以下工具软件
下载并安装以下软件包: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 |
对于QGIS构建,您需要从cygwin安装以下软件包:
bison
flex
git
注:
flex和 bison可以从cygwin下载,但是要注意32位还是64位,32位的在下载时会下载32位的,64位的在下载时会下载64位的。安装地址不要带空格和中文。也可以从我提供的以下的链接直接下载解压:
链接:http://pan.baidu.com/s/1cpfWtg 密码:igia
git可以不用下载,这个主要是用来下载QGIS源码包的,下载QGIS源码包我们要以从官网上下载。
http://qgis.org/downloads/qgis-latest.tar.bz2
和OSGeo4W(选择Advanced Installation):
expat
fcgi
gdal
grass
gsl-devel
iconv
libspatialindex-devel
pyqt5
python3-devel
python3-qscintilla
python3-nose2
python3-future
python3-pyyaml
python3-mock
qca-qt5-devel
qca-qt5-libs
qscintilla-qt5
qt5-devel
qt5-libs-debug
qtwebkit-qt5-devel
qtwebkit-qt5-libs-debug
qwt-devel-qt5
sip-qt5
spatialite
这也可以选择上述软件包所依赖的软件包。要注意的是,上述所有的软件包或依赖不能有空格或中文。
4. 使用CMake设置并构建Visual Studio项目
要启动具有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
最后再次生解决方案,完美生成整个项目。
如果出现其它问题,或有什么错误欢迎留言指正,谢谢!!!
相关文章推荐
- Win10 qwtplot3d +qt5.7.1+vs2015 编译方法
- QtCreator 4.0 Q5.7 VS2015 源码中有中文导致编译失败的问题的解决方法
- VS2015 编译 Detours 方法,解决各种报错和警告。
- 使用vs2015编译VTK INSTALL-仅用于项目-仅生成INSTALL出错解决方法
- QGIS编译---QGIS2.18.16 + Qt5.9.2 + VS2015(X64) + Python3.6
- DirectX在VS2015上编译时遇到“无法解析的外部符号 __vsnwprintf”的解决方法及原因
- VS2015中编译snmp++及内存泄漏解决方法
- VS2015 C++编译失败,提示link1171,无法加载mspdb140.dll错误解决方法!
- Matlab2014a使用VS2015混合编译-低版本matlab支持高版本的vs的方法
- VS2015 x64环境下编译flann源代码错误:serialize 左边必须有类/结构/联合 的解决方法
- VS2015环境下查看C语言编译成的汇编语句的方法
- QGIS(2.18.15 源码)+Qt(5/5.9.3)+VS2015(X64)编译
- VS 2005 编译的程序不能运行的几个解决方法
- 32位到64位:VS2013修改编译平台的方法
- vs编译程序在Win7下提示无法运行解决方法
- boost 1.49在vs 2005下编译的方法
- VS编译链接常见的异常和处理方法
- libnids 在VS 2010中使用方法及编译错误解决方法
- vs2012查找替换已经反编译出现<keyword>k__BackingField解决方法
- vs编译网站时非正常关机导致网站运行不了的解决方法