一、参 考
李民录老师:
http://blog.csdn.net/liminlu0314/article/details/17400075
Jacory Gao:
http://blog.csdn.net/deirjie/article/details/48216773
QGIS官网:
https://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html#toc14
简单程序员:
https://www.cnblogs.com/xiaojian1987/p/8342104.html
二、软件下载
1、工具软件
(1)Cmake:主要用于编译,从官网直接下载即可
https://cmake.org/download/
(2)Cygwin:用于下载bison,flex软件
https://cygwin.com/install.html
(3)OSGeo4w:用于下载QGIS依赖库
http://trac.osgeo.org/osgeo4w/
(4)QGIS源码
https://www.qgis.org/en/site/forusers/download.html
2、Cygwin的安装
注意:未下载的前面显示"skip",点击会变成具体的版本,我这里是"keep",因为我之前下载过,按照上面的说明,下载flex、bison,上面的路径不要有中文或空格。
3、OSGeo4w的安装
说明:(1)这里的操作和Cygwin基本一致;(2)Search输入要下载的内容,具体包含:expat,fcgi,gdal,grass,gsl-devel,iconv,libzip-devel,libspatialindex-devel,pyqt5,python3-devel,python3-qscintilla,python3-nose2,python3-future,python3-pyyaml,python3-mock,python3-six,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,oci,qtkeychain,libzip,qjson。
三、Cmake配置
1、创建batch文件
如果上述的包在默认的路径下安装(batch文件后缀名为bat),bat文件为:@echo off set VS140COMNTOOLS = D:\work\AZWJ\VS\Common7\Tools\ call "D:\work\AZWJ\VS\VC\vcvarsall.bat" x64 set INCLUDE=%INCLUDE%;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include set LIB=%LIB%;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib set OSGEO4W_ROOT=D:\work\AZWJ\QGISSELF\OSGeo4w call "%OSGEO4W_ROOT%\bin\o4w_env.bat" call "%OSGEO4W_ROOT%\bin\py3_env.bat" call "%OSGEO4W_ROOT%\bin\qt5_env.bat" set O4W_ROOT=%OSGEO4W_ROOT:\=/% set LIB_DIR=%O4W_ROOT% path %path%;D:\work\AZWJ\VS\VC\bin path %PATH%;D:\work\AZWJ\QGISSELF\cmake\cmake\bin;D:\work\AZWJ\QGISSELF\cygwin\bin @set GRASS_PREFIX=D:/work/AZWJ/QGISSELF/OSGeo4w/apps/grass/grass-7.4.0 @set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\include @set LIB=%LIB%;%OSGEO4W_ROOT%\lib;%OSGEO4W_ROOT%\lib set LIB=%LIB%;%OSGEO4W_ROOT%\apps\Qt5\lib;%OSGEO4W_ROOT%\lib set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\apps\Qt5\include;%OSGEO4W_ROOT%\include @cmd说明:上面的路径要根据自己的实际情况,做适当地改变,特别是我红色标注的地方,做好这一步后面会省去很多事情。(1)VS140COMNTOOLS表示VS15,call后续跟的X64表示64位编译;(2)Include表示头文件,这里加了Win10系统的sdk;Lib表示编译的动态库;(3)Path表示环境变量;(4)特别注意:GRASS_PREFIX的路径地址必须是“/”,Path路径多个;之间不能有空格。
2、配置
启动cmd,进入命令行窗口,先执行上面的bat文件,然后进入cmake。
说明:点击Configure之后会遇到错误,很容易解决,这里就不一一解决了,下面是我的最终截图:
四、编译
1、将debug模式改为ReWithdebInfo
2、移除不依赖的项目,保留依赖项目,将qgis设置为启动项
3、全部编译后,生成的所有文件在Build->output->bin->RelWithDebInfo目录下,截图如下:
五、主要问题
1、WinMain问题
在编译qgis工程时,会出现Winmain程序入口问题,因为新建项目的时候选择的是控制台应用程序,控制台应用程序的入口是main。而在.CPP文件中提供的是windows入口函数WinMian。
解决方法:
2、启动qgis.exe 提示缺少各种dll文件,可以将OSGeo4W64\apps\Qt5\bin下的dll全部拷贝到同目录下,也可以把这个bin路径设置到环境变量下。
3、再次启动qgis.exe 会出现下面的问题:
解决方法:将OSGeo4W64\apps\Qt5\plugins文件下的platforms文件夹拷贝到刚才的目录即可,截图如下:
4、再次启动,成功。4. 在编译qgis_core时提示找不到<netinet/in.h>,注释掉即可。
5. 提示有常量符,改成下面的样子就好了。
详细解决方案
QGIS编译---QGIS2.18.16 + Qt5.9.2 + VS2015(X64) + Python3.6
热度:52 发布时间:2023-12-13 01:24:31.0
相关解决方案
- Python3.4 解释一段程序时提示SyntaxError: invalid syntax异常
- python3.4 编译时提示异常 IndentationError: unexpected indent
- VS2015 老是报 Blend for Visual Studio 已停止工作的异常
- vs2015 打开VS2010 的ASP.NET项目 揭示命名空间“System”中不存在类型或命名空间名“Linq”(是否缺少程序集引用?)
- QGIS 通过WMS访问比较大的map数据,闪烁有关问题
- python3.2运用pywin32连接SQLServer2008
- 在 python3 上为 Ubuntu 安装 NCurses
- Python3.x:从其他类访问self.xxx变量而不继承
- 我该如何抓取所有
内容是什么?(python3.6) - 在 Python3 中不使用 FOR 的模式匹配后返回一个巨大文件的确切行
- 在运行脚本的命令前面使用的“ th”,“ python”,“ python3”,“ java”等是什么?
- Python3.6和单例-用例和并行执行
- 使用 Python3 的 Pipedrive API 将交易输出限制为 1000 笔交易
- 无法在 Linux 上使用 python3 和 cx_Oracle 作为外部识别用户进行连接
- 短语突出显示QEditText PyQt4 Python3
- 打印/获取字典中每个嵌套项目的完整路径 - Python3
- python3.7+anaconda3+vs2015+dlib19.16
- python3 判断列表是否存在某元素
- python3 issubset 判断列表子集
- VS2015 远程调试方法
- Python3 虚拟环境激活
- Python3 教程
- python3.7+flask+web学习笔记2
- Python3 socket
- 远程部署神器 Fabric,支持 Python3
- python安装教程(Windows系统,python3.7为例)
- python3-PIL基本概念
- python3.7使用pyinstaller 打包.py文件生成exe文件的种种问题
- python3,python2不同版本下安装PyQt4
- python3.7opencv安装