济南友泉软件有限公司
QGIS是一套跨平台的开源GIS(Geographic Information System)软件。
对于Windows下编译QGIS,QGIS社区提供了Cygwin与MinGW等两种方法,本文详述采用Cygwin在Windows 10编译安装QGIS的操作流程。
注1:随系统环境不同,QGIS编译方法可能略有不同。
注2:限于笔者认知水平与研究深度,难免有不当之处,敬请谅解。
零、系统环境
操作系统:Windows 10
编译器:Visutal Studio Community 2019
Make:CMake 3.15.0Git: Git 2.9.3.2 64 bit
一、获取代码
在”D:\YouQuan\CaeFrameworks\QGIS”下创建如下目录,
从GitHub下载代码 ,
二、安装依赖
2.1 Cygwin安装依赖包
首先下载安装Cygwin,选择下载临时目录为”C:\Users\Administrator\AppData\Local\Temp”
然后安装一下依赖包
2.2 OSGeo4W安装依赖包
首先下载安装OSGeo4W。由于武汉大学等国内镜像源提供的依赖包版本滞后,因此此处仍旧使用国外镜像源。
镜像源 | 依赖包版本 |
qgis-dev-deps 3.23.0-178-9ae9d40d14-1 | |
Open Source Lab | qgis-dev-deps 3.23.0-178-9ae9d40d14-1 |
www.norbit.de | qgis-dev-deps 3.23.0-178-9ae9d40d14-1 |
武汉大学镜像 | 3.13.0-1 |
下载安装以下依赖包
依赖包 | 版本 | 说明 |
ninja | 1.7.2 | 下载ninja-win.zip,解压得到ninja.exe。 把ninja.exe拷贝到C:\OSGeo4W\bin\ |
qgis-dev-deps | 3.23.0-178-9ae9d40d14-1 |
注意:由于网络状状态不稳定,OSGeo4w可能不能下载全部的依赖包,导致部分依赖包丢失,可以重复几次下载即可。
三、构建项目
为了配置编译环境,需要设置OSGeo4W、python、Qt等相关环境变量。
新建“C:\OSGeo4W\bin\py3_env.bat”,添加以下内容,
新建“C:\OSGeo4W\bin\qt5_env.bat”,添加以下内容,
新建“C:\OSGeo4W\bin\qt5.conf”,添加以下内容,
新建“D:\YouQuan\CaeFrameworks\QGIS\qgis-dev.bat”,添加以下内容, 然后在命令行中中启动CMake,
按照下表配置CMake,
然后构建并生成VS项目qgis.sln。
四、编译安装
CMake构建成功之后,直接在CMake中打开qgis.sln,切换到”Release”配置模式,构建“ALL_BUILD”项目,完成QGIS的编译;构建“INSTALL”项目完成QGIS的安装。
注意:由于目前OSG4W提供的qgis-dev-deps对于部分依赖包仅提供Release版本的库文件,可能会造成”Debug”配置模块编译报错。
设置”qgis”项目为启动项目,运行启动qgis,验证QGIS编译成功。
Q1. CMake构建项目时,提示找不到”pyuic5”
A1.修改”D:\YouQuan\CaeFrameworks\QGIS\QGIS\cmake\PyQtMacros.cmake”
Q2. 编译QGIS时,访问QgsField::ConfigurationFlags::None等枚举类型报错。 A2. 修改moc_qgsfields.cpp,
网络资料
QGIS GItHub https://github.com/qgis/QGIS
QGIS最新编译指南(QGIS3.18.1-VS2017,2021年) https://blog.csdn.net/weixin_43829992/article/details/115868573
QGIS data https://qgis.org/downloads/data/
参考文献
孟庆祥. OpenGIS设计开发基础教程-基于QGIS PostGIS设计开发. 武汉大学出版社, 2018.
————————————————