编译运行整个QGIS耗时耗力,由于本人比较愚钝,来来回回花了大概两个星期最终编译成功,记录一下整个过程,一方面备忘,另一方面可能也给别人一点借鉴。

1、准备工作

参考了许多网上的教程,李民录大神的《QGIS编译》

https://blog.csdn.net/liminlu0314/article/details/17400075

《QGIS编译--QGIS3.03+VS2017(64)+QT5.92源码编译过程及二次开发准备经验》 https://www.e-learn.cn/content/qita/1241748

等等好多教程。

需要安装的软件有

1)cmake

链接地址:https://cmake.org/download/,下载一个cmake的软件,本项目使用cmake进行构建的。

2)vs2015

在VS官网下载vs2015的社区版

3)GNU flex, GNU bison

这两个库使用cygwin(链接地址http://cygwin.com/setup-x86_64.exe )下载安装。

4)OSGeo4W

地址:http://download.osgeo.org/osgeo4w/osgeo4w-setup-x86_64.exe

可以从这个软件上下载qgis安装需要的第三方库,主要有下面这些库

Gdal,Geos,Proj4,Sqlite3,Spatiallite,spatialliteindex,expat,qca,qwt,Qwtpolar,Qscintill,注意在安装的时候要选择Advanced Install的模式

5)Qt

Qt的库既可以是从OSGeo4W上直接下载,也可以在qt官网上安装,在配置的时候把路径写正确就可以了,我使用的是从OSGeo4W上下载了qt5.11.2的版本。

2、构建QGIS程序

可以使用git下载,也可以直接在github上下载qgis的源码,我选择的是qgis3.4的分之,直接编译maste编译的时候出了点问题,就是用了该版本编译。

下面就是使用cmake构建qgis了,

1)    打开cmake-gui界面

选好源码路径和构建路径,点击configure选择VS2015 64位进行配置,会出现一系列的库路径需要配置,基本都是在OSGeo4W中已经下载的库,如果没有下载,搜索后下载即可我最后配置成功的库目录如下,其中还需要配置的就是SETUP_LIBRARY路径:

C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib/x64/SetupAPI.Lib

有的版本总是提示spatiallite的版本过低,可以跳过改库的配置,在编译的时候加上即可。

所有的配置完成不再提示错误后,点generate生成vs2015的项目,构建完成。

3、编译QGIS项目

VS2015打开QGIS 项目后有三百多个工程,先编译基本的项目,根据其它的教程提示,先编译的库有

qgis_core,qgis_gui,qgis_app,qgis_native,qgis_analysis,ui,qgis七个基础项目再加上,libsxfrw,gdalprovider,ogrprovider插件项目一共十个。

首先编译qgis_core项目,该项目编译成功后面的项目就相对比较简单了。

出现的问题:

1)编译过程中总是提示:error C2001:常量中有换行符,在网上搜了一些答案,总结原因应该是VS的IDE对无BOM头的utf-8编码格式支持不完善造成的问题,解决方式有两种:可以将有中文字符的文件转换为带BOM头的utf-8格式的文件,或者是按照网上别人说的在””包括的中文字符后面加空格可以解决该问题。

2)另外一下显示无法找到某个头文件或者链接时候缺少某个库直接在增加include目录或者是库文件就行了,如我在编译的时候遇到一个头文件找不到的现象,发现该头文件在C:\OSGeo4W64\include\spatialindex目录下,直接包含该目录即可

之前的spatiallite没有配置成功的可以在此处配置上。

4、运行qgis项目

编译完成后,将qgis设为启动项目,直接运行,发现出现了一个问题无法加载qgis_app.dll库,这个地方搞了好久都不知道原因,查看了很多网上的教程才发现需要因为qgis_app.dll需要的很多动态库运行时找不到,所以无法加载成功需要把C:\OSGeo4W64\bin以及C:\OSGeo4W64\apps\Qt5\bin下的动态库全部拷贝到exe目录之下才能启动。建议在运行之前通过depends软件检查一下qgis_app.dl是否缺少依赖再运行。

再次启动提示如下错误no Qt platform plugin could be initialized错误,需要将C:\OSGeo4W64\apps\Qt5\plugins下的platforms拷贝到exe目录之下.

至此,成功启动qgis。

5、后续问题

启动完成后,后续就是中文汉化和界面图标没显示的问题,需要再进一步处理。

记录编译QGIS(3.4+Qt5.11+VS2015)的整个过程的更多相关文章

  1. Windows下PythonQt编译(vs2015+Qt5.11.2+PythonQt 3.2)

    后记: 由于自己low,没有下载罪行的python3.2导致编译上遇到种种问题,后文可以参考,建议看: <Windows7 VS2015 下编译 PythonQt3.2> https:// ...

  2. Windows下PythonQt编译(vs2015+Qt5.11.2+PythonQt 3.2)探索

    时间:2018年10月20日 笔者最近在做Qt方面的开发工作,需用到脚本程序对程序内部进行扩展,就很自然的想到了PythonQt,下面介绍PythonQt在Windows下的的安装编译心得,水平有限, ...

  3. Qt5.11.2 VS2015编译activemq发送程序 _ITERATOR_DEBUG_LEVEL错误和崩溃解决

    1.问题描述: 运行环境是 win10 64位系统,开发环境是VS2015 ,Qt 5.11.2.开发activemq发送程序,遇到问题 (1)Qt5AxContainer.lib error LNK ...

  4. QT学习笔记1:VS2015配置QT5.11

    由于工作关系,我又接触到了QT,在之前写过一篇博客是 在vs2017下配置openCV,当时用的是2015做的示范,现在就继续记录一下在VS2015下配置QT吧(VS2017配置是一样的) 第一部分: ...

  5. WIN10+QT5.9+VS2015编译RedisDesktopManager

    原文:WIN10+QT5.9+VS2015编译RedisDesktopManager 官方源码编译安装说明地址:http://docs.redisdesktop.com/en/latest/insta ...

  6. qt5.11.2+vs2017环境下配置pcl1.8.1以及第三方依赖库vtk的编译

    1.准备工作 我所用的开发环境是win10下的qt5.11.2配置了vs2017的编译器,根据自己所用的VS的版本去官网下载对应版本的pcl库,如下 PCL-1.8.1-AllInOne-msvc20 ...

  7. qt5.11.2+vs2017环境下opencv3.4.1编译配置

    OpenCV是一个开源的计算机库,它可以帮助视觉工作者做很多富有创造性的工作,在图像处理领域扮演着重要的角色.由于opencv3.x的存在,不管你是学生还是研究人员,是专家还是初学者,都可以快速的建立 ...

  8. Qt5.11.1安装与VS2017配置

    Qt5.11.1安装与VS2017配置 转 https://blog.csdn.net/gaojixu/article/details/82185694 文章目录 Qt5.11.1安装与VS2017配 ...

  9. Ubuntu18.04中配置QT5.11开发环境

    准备工作 参考 https://wiki.qt.io/Install_Qt_5_on_Ubuntu . # 安装g++ sudo apt install build-essential # sudo ...

随机推荐

  1. 机器学习——Adaboost

    1 Adaboost 的提出 1990年,Schapire最先构造出一种多项式级的算法,即最初的Boost算法; 1993年,Drunker和Schapire第一次将神经网络作为弱学习器,应用Boos ...

  2. 安卓开发 利用百度识图api进行物体识别

    前文 之前的随笔中,已经通过相机或相册获取到了我们想要的图片,接下来进行识图api的配置工作.我使用的是百度的api,利用python获取信息,并在MainActivity中进行调用来输出信息. 一. ...

  3. Jenkins持续交付实战演练

    jenkins web hook机制 运行jenkins任务触发方式: 主动运行 定时构建 就算代码库没有更新,也会构建. 通过代码库主动触发Jenkins的构建任务 jenkins向外暴露一个触发器 ...

  4. PHP 7.4 checking for libzip 和 failed to open error_log 问题

    来源: https://hqidi.com/154.html 两个深坑,成年阿根廷龙踩出来的坑,网上都没找到解决方法,都是自己摸索出来的. 前面一切顺利: yum install -y libxml2 ...

  5. python+宝塔nginx+uwsgi的搭建方法

    第一: 百度搜索宝塔,然后进入root,安装lnmp,根据情况选择选择需的选项进行安装,nginx必须安装. 第二: 进入宝塔,新建网站,网站的目录,先随便指定,绑定好的域名, 进入root,到宝塔网 ...

  6. [转载]linux上用PHP读取WORD文档

    在linux上用PHP读取WORD文档,其实是使用了 antiword程序把word文档转化为txt文档. 再使用php执行系统命令调用而已. 具体操作如下: 1.安装antiword 官方站:htt ...

  7. WPF进阶技巧和实战03-控件(5-列表、树、网格04)

    ListView控件 ListView继承自简单的没有特色的ListBox,增加了对基于列显示的支持,并增加了快速切换视图或显示模式的能力,而不需要重新绑定数据以重新构建列表. ListView类继承 ...

  8. WPF进阶技巧和实战02-布局

    窗体 无边框 窗体无边框(最大化及标题位置)WindowStyle="None" 窗体透明 AllowsTransparency="True",必须设置窗体无边 ...

  9. 前端快闪三:多环境灵活配置react

    你已经使用Create React App脚手架搭建了React应用,现在该部署了. 一般会使用npm run build或者yarn build构建出静态资源, 由web服务器承载. 您会体验到 多 ...

  10. node.js及npm安装&配置

    之前我们在文言文安装教程里写过node.js及npm的安装,这里我们详细写一下. 下载node.js node.js下载分为两种,官网nodejs.org,和国内官网nodejs.cn,国内的童鞋建议 ...