一、参 考
李民录老师:
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
最新推荐文章于 2024-05-14 10:06:19 发布