自己动手编译QGIS 3.18源代码,含出错大全和解决办法

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

从2月19日开始打包,到2月23日,QGIS 3.18的安装包经过漫长的4天才完成打包,在这等待的4天里,大家有没有像我一样萌生出自己动手编译源代码的想法呢?今天想分享的是QGIS3.18源代码编译的过程,并在最后整理出编译过程遇到的错误和解决办法。

 

 01 编译环境

 

  • 操作系统

 

本次编译选用Ubuntu 20.04操作系统,理由如下:

 

从第一个版本开始,QGIS大部分开发是在Linux环境下进行的,与Linux系统的兼容性更好(实际上,我在Windows系统也试着编译过QGIS源码,编译环境的安装、编译过程难度比在Linux系统大得多);

 

Ubuntu 20.04是一个与Windows系统相类似的、以桌面应用为主的Linux发行版本,对Linux新手来说比较符合操作习惯、易于上手。而且 20.04版本是Ubuntu的长期支持(LTS)版本,社区可提供5年的支持,比最新的20.10版稳定性和成熟度好很多。

 

  • 其他编译环境

 

CMake:3.16.3

Flex :2.6.4

Bison:3.5.1

Python:3.8.5

 

 02 下载源代码

 

建议将不同版本的QGIS源代码用单独的目录存放,打开命令行终端,输入如下命令,建立工作目录并切换到该目录:

 

mkdir -p ${HOME}/dev/QGIScd ${HOME}/dev/QGIS

 

下载源代码: 

 

wget https://github.com/qgis/QGIS/archive/final-3_18_0.tar.gz

 

解压缩下载回来的代码包:

 

tar -zxf QGIS-final-3_18_0.tar.gz

 

 03 安装依赖库

 

从Ubuntu系统的左下角的开始菜单打开一个命令行终端,参照github的“Building QGIS from source - step by step”文档(https://github.com/qgis/QGIS/blob/master/INSTALL.md),输入如下命令安装QGIS编译需要的依赖库:

 

sudo apt-get install bison ca-certificates ccache cmake cmake-curses-gui dh-python doxygen expect flex flip gdal-bin git graphviz grass-dev libexiv2-dev libexpat1-dev libfcgi-dev libgdal-dev libgeos-dev libgsl-dev libpdal-dev libpq-dev libproj-dev libprotobuf-dev libqca-qt5-2-dev libqca-qt5-2-plugins libqscintilla2-qt5-dev libqt5opengl5-dev libqt5serialport5-dev libqt5sql5-sqlite libqt5svg5-dev libqt5webkit5-dev libqt5xmlpatterns5-dev libqwt-qt5-dev libspatialindex-dev libspatialite-dev libsqlite3-dev libsqlite3-mod-spatialite libyaml-tiny-perl libzip-dev libzstd-dev lighttpd locales ninja-build ocl-icd-opencl-dev opencl-headers pdal pkg-config poppler-utils protobuf-compiler pyqt5-dev pyqt5-dev-tools pyqt5.qsci-dev python3-all-dev python3-autopep8 python3-dateutil python3-dev python3-future python3-gdal python3-httplib2 python3-jinja2 python3-lxml python3-markupsafe python3-mock python3-nose2 python3-owslib python3-plotly python3-psycopg2 python3-pygments python3-pyproj python3-pyqt5 python3-pyqt5.qsci pyth
QGIS源码编译步骤详解——官方新方案 源码下载、环境下载Cygwin64、OSGeo4W、CMAKE、Visual Studio 2017、环境配置、配置、编译 方案详细可见源码文件中INSTALL.md。 阅读详情

相关推荐

linux qgis源码编译,ubuntu安装QGIS(一)

QGIS项目简介QGIS是一个用户界面友好的桌面地理信息系统,可运行在Linux、Unix、Mac OSXWindows等平台之上。QGIS是基于Qt,使用C++开发的一个用户界面友好、跨平台的开源版桌面地理信息系统。QGIS项目开始于2002年 5月,是基于跨平台的图形工具Qt软件包,采用C++ 语言开发的一个GIS软件。目前的开发非常活跃,当前(2014年)的最新版本是QGIS 2.4 版。...

weixin_42469000的博客 1821

第1节 QGIS源码获取编译(QGIS)QGIS编译二次开发包

第1节 QGIS源码获取编译(QGIS)中,笔者提供的预编译开发包(Debug版本),方便读者学习使用笔者编译好的QGIS进行二次开发或者学习。

Windows 10下编译安装QGIS

济南友泉软件有限公司 QGIS是一套跨平台的开源GIS(Geographic Information System)软件。本文详述在Windows下编译安装QGIS的操作流程。 对于Windows下编译QGIS,QGIS社区提供了Cygwin与MinGW等方法,本文详述采用Cygwin在Windows编译QGIS的操作流程。 零、系统环境 操作系统:Windows 10 编译器:Visutal Studio Community 2019 CMake:CMake 3.15.0 Git: Git

国产CAx(CAD/CAE/CAM)软件研发 4015

qgis 3.6.1源码编译

最新版本的qgis 源码编译,前几天,qgis官方编译手册更新相比之前繁琐复杂的编译过程, 新手册非常简单易懂,亲测可用。

QGIS源码编译(vs2017-qgis3.18

QGIS源码编译(vs2017-qgis3.18) 1、 下载QGIS源码 1.1、直接github下载qgis源码 下载后对文件进行解压 其中INSTALL.md为官方编译文档,可作为参考 1.2、或者使用GIT命令下载源码 使用git工具在指定路径下从github克隆源码,为了防止下载速度过慢可以使用http://github.com.cnpmjs.org镜像网站来替代http://github.com。 git clone https://github.com/qgis/QGIS 可搜索GIT关键

qq_42182440的博客 2284

QGIS编译】解决编译时出现的C2001 C2062 C2143 C2065错误

环境 系统:win10 x64 QGIS版本:V3.12.3 VS版本:VS2015 现象 编译qgis工程时,编译器报C2001 C2062 C2143 C2065错误。 解决方法 1、

sunriver2000的专栏 1137

Ubuntu18.4下使用Qtcreator编译QGIS3.10.5

系统环境 Ubuntu 18.04.4 LTS QGIS代码版本 : QGIS-3.10.5 Qt5.9.5,Qtctreator4.5.1 编译前准备 1.安装依赖库: sudo apt-get install bison ca-certificates ccache cmake cmake-curses-gui dh-python doxygen expect flex gdal-bin git graphviz grass-dev libexiv2-dev libexpat1-de.

随风而动的博客 1887

QGis二次开发 -- 源码编译终极篇

俗话说,授人以鱼不如授人以渔。这次我想抛开QGis的任何一个特定版本,跟大家谈谈源码编译的根本方法,结合我之前写的两篇QGis编译指南,希望能够就此终结源码编译的噩梦。

MrJGao的专栏 1万+

QGIS编译(跨平台编译)之六十七:QGIS在MacOS环境下编译

QGIS编译QGIS在MacOS环境下编译

LuckyHanMo的博客 870

QGIS编译(跨平台编译)之五十二:QGIS在MacOS环境下编译的错误处理

QGIS编译QGIS在MacOS环境下编译;错误处理

LuckyHanMo的博客 502

QGIS2.18.20+VS2015--Debug版本编译

    最近开发需要用到qgis,首先根据网上的教程把RelWithDebInfo版本编译出来了,用了好大劲,终于编译debug版本成功,记录一下遇到的关键问题。编译QCA    由于qgis编译用到OSGeo4w,而其中提供的库都是release的,直接编译debug版本的qgis,在运行qgis.exe时会在程序QCA相关函数中崩溃,因此我先编译了QCA的debug版本,用来替换编译qgis...

pastor123的博客 2477

qgis二次开发环境搭建(超级详细)

      最近有一个项目要求基于qgis+QT进行二次开发开发,要使用到qgis平台。陆陆 续续花了差不多两个多星期,在把开发环境搭建起来。        首先就面临2种选择,一种 到qgis官网下载源码,进行编译,此 情况我走了一般编译成功,但是很麻烦,还有很多问题没有解决。        另外,直接在线下载, 官方网站 编译好的二次开发SDK包。本篇 文章采用的是第2种方法,简单快捷,但...

写给自己的笔记 6万+

别再折腾环境变量了!QGIS 3.28+ 版本安装Python库的正确姿势(附版本差异说明)

本文详细介绍了QGIS 3.28+版本中Python库安装的全新方法,告别了繁琐的环境变量配置。通过`o4w_env`命令简化流程,自动处理路径管理,支持直接安装第三方库到QGIS环境,显著提升工作效率。特别适合GIS开发者数据分析师快速搭建稳定的Python工作环境。

weixin_30411819的博客 402

qgis导入线的数据_利用开源QGIS软件提高地震应急专题图制 作效率研究--纪念那些回不去的青春岁月。...

引言 地震发生后,地震应急工作人员需在短时间内快速制作并产出大量专题图件,长期以来,此类图件都是震后由应急人员手工制作,效率较低,且容易出错。近年来,地震系统逐步采用了基于ArcGIS Engine平台二次开发的专题图自动出图系统[1,2],出图效率有了大幅度提高。近年来,随着开源软件的不断发展进步,许多优秀的开源GIS平台涌现,如:QGIS、Map Window等等,它们不仅能完成很...

weixin_29775447的博客 729

AI如何真正理解城市:数据清洗、空间语义建模与规划决策闭环

城市智能规划本质上是将多源异构城市数据(如POI、信令、路网)转化为可解释、可验证、可行动的空间决策依据。其核心原理在于突破传统GIS的几何分析局限,构建融合物理约束、社会感知与动态交互的三维空间语义模型;技术价值体现在以轻量化开源栈(Python+PostGIS+QGIS)实现高合规性、低门槛、强落地的分析闭环;典型应用场景包括职住平衡诊断、十五分钟生活圈评估、公交接驳优化等;关键成败线不在算法复杂度,而在于数据清洗的真实性校验、空间建模的本体逻辑对齐,以及结果验证从‘模型准确率’转向‘规划师点头率’——

ctk87443的博客 567

BlenderGIS插件常见错误全解析:从环境配置到数据处理的完整排错指南

地理信息系统(GIS)与三维可视化技术的结合,为数字孪生、城市规划等领域提供了强大的工具支持。其核心原理在于将真实世界的地理坐标数据通过坐标参考系统(CRS)进行精确转换与映射,进而构建三维场景。这一技术的关键价值在于能够实现高精度的空间数据可视化与仿真。在实际工程应用中,BlenderGIS作为连接GIS数据与Blender三维软件的重要桥梁,其使用常因环境依赖、数据兼容性等问题而受阻。例如,Python库缺失(如gdal)、网络请求失败以及CRS设置混乱是导致插件报错的典型热词场景。本文聚焦于这些高频问

weixin_34297704的博客 591

告别零散文件!用Pythonmbutil把海量地图瓦片打包成mbtiles的保姆级教程

本文详细介绍了如何使用Pythonmbutil工具将海量地图瓦片打包成mbtiles格式,提升存储效率管理体验。通过环境配置、元数据设置、批量转换及性能优化等实战技巧,帮助开发者高效处理GIS数据,适用于地图服务部署GIS工具链集成。

weixin_31766003的博客 288

AIS数据解析实战:从NMEA报文到船舶轨迹分析全流程

AIS(自动识别系统)是船舶航行中用于广播身份、位置等关键信息的国际标准通信系统,其核心原理是通过VHF数据链路发送遵循ITU-R M.1371等标准的数字化报文。这些报文通常封装在NMEA 0183格式中,经过六比特ASCII编码传输,技术价值在于为海事监管、航行安全与物流效率提供了实时、可靠的数据源。在工程实践中,解析AIS数据涉及对原始报文的解码、校验、结构化转换以及后续的清洗、存储与可视化,这是构建船舶轨迹追踪、碰撞预警等上层应用的基石。针对AIS报文解析,开发者常需处理NMEA语句校验、比特流提取

weixin_34268753的博客 357

战地边缘AI:轻量级机器学习在断网断电人道救援中的实战落地

边缘AI是指将模型推理能力下沉至终端设备,绕过云端依赖,在带宽受限、电力不稳、算力薄弱的极端环境下实现自主决策。其核心原理是模型压缩、硬件适配与数据降维,技术价值在于提升系统可用性、鲁棒性与部署敏捷性。典型应用场景包括灾害响应、战区人道援助、野外科考等弱连接环境。本文聚焦真实乌克兰前线部署案例,详解如何用37MB轻量模型、纯CPU推理、手机级输入(倾斜航拍图/GPS坐标)完成建筑安全分级、动态避难路径规划与炮击热力图生成——关键突破在于LightCNN-3网络设计、相对地标锚定定位法及OSINT驱动的无历史

weixin_33922670的博客 392
上一篇: QGIS 3.18正式发布,五大新特性解析
下一篇: 三款国产操作系统使用初步体验
QGIS课堂
博客等级 码龄6年 860粉丝 83原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值