QGIS编译---QGIS2.18.16 + Qt5.9.2 + VS2015(X64) + Python3.6 - Go语言中文社区

QGIS编译---QGIS2.18.16 + Qt5.9.2 + VS2015(X64) + Python3.6


一、参 考
李民录老师:
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:workAZWJVSCommon7Tools
call "D:workAZWJVSVCvcvarsall.bat" x64
set INCLUDE=%INCLUDE%;C:Program Files (x86)Microsoft SDKsWindowsv7.1AInclude
set LIB=%LIB%;C:Program Files (x86)Microsoft SDKsWindowsv7.1ALib
set OSGEO4W_ROOT=D:workAZWJQGISSELFOSGeo4w
call "%OSGEO4W_ROOT%bino4w_env.bat"
call "%OSGEO4W_ROOT%binpy3_env.bat"
call "%OSGEO4W_ROOT%binqt5_env.bat"
set O4W_ROOT=%OSGEO4W_ROOT:=/%
set LIB_DIR=%O4W_ROOT%
path %path%;D:workAZWJVSVCbin
path %PATH%;D:workAZWJQGISSELFcmakecmakebin;D:workAZWJQGISSELFcygwinbin
@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%appsQt5lib;%OSGEO4W_ROOT%lib
set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%appsQt5include;%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文件,可以将OSGeo4W64appsQt5bin下的dll全部拷贝到同目录下,也可以把这个bin路径设置到环境变量下。

3、再次启动qgis.exe 会出现下面的问题


解决方法:将OSGeo4W64appsQt5plugins文件下的platforms文件夹拷贝到刚才的目录即可,截图如下:
4、再次启动,成功。

4. 在编译qgis_core时提示找不到<netinet/in.h>,注释掉即可。
5. 提示有常量符,改成下面的样子就好了。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/quinta_2018_01_09/article/details/79084001
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 21:47:43
  • 阅读 ( 1530 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢