QGIS编译

玩转地理信息和实景三维,玩转qgis是一条捷径,而且几乎是无法回避的过程。所以下定决心,自己首先编译通过qgis。

下载源代码

已经下载qgis-3.34.8
源代码的文件体系如下图:在这里插入图片描述

百度搜索qgis编译,得到博文 QGIS在Windows下的编译——QGIS3.28.15 + Qt5.15.3 +CMake…
感觉该文时间较近,值得参考,决定按该博文的指导一步步实现。首先感谢博文的作者。成功大多建立在巨人的肩膀上,希望原博文作者能是我这个小小目的的巨人!

博文中说准备和我的实现有:

  1. 编译环境&&软件版本:
    (1)Windows 10 64位 专业版 符合
    (2)Visual Studio Community 2022(社区版)需要下载
    (3)CMake-3.28.0 64位 需要下载
    (4)Cygwin 64位 需要下载
    (5)OSGeo4W 64位 需要下载
    (6)Qt5.15.3-64位(通过OSGeo4W 下载)有5.12源码,64位,说明是编译好的库
    (7)QGIS-3.28.15 源码 就用我现在的
    Visual Studio Community 2022(社区版)下载安装较简单,我选择了所以组件,大约需要46G空间 ,下载速度还可以,7M\S.
    下载 cmake-3.30.2-windows-x86_64.msi并安装,顺利
    下载Cygwin 64位
    在这里插入图片描述
    在这里插入图片描述
    手动添加站点,一定添加cygwin目录,如下图
    在这里插入图片描述

安装bison、flex、git,参照说明可以安装完毕。

OSGeo4W 64位,按照指导无法安装。因为:
在这里插入图片描述
原因不明。可以用浏览器打开setup.ini文件,就是这个installer无法安装。
换了同事的电脑,下载成功。看来,我的电脑网络配置哪里有些问题,一时搞不清楚。
源码顺手下了3.34.8
配置环境变量很重要。我的环境变量配置文件start_compile.bat:

@echo off
set VS150COMNTOOLS=C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
 
set INCLUDE=%INCLUDE%;C:\Program Files (x86)\Windows Kits\10\Include
set LIB=%LIB%;C:\Program Files (x86)\Windows Kits\10\Lib
 
set OSGEO4W_ROOT=D:\envqgis\OSGeo4W
call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
SET PYTHONHOME=%OSGEO4W_ROOT%\apps\Python312
SET PYTHONPATH=%PYTHONHOME%;%PYTHONHOME%\Scripts
set PYTHON_EXECUTABLE=%PYTHONHOME%/python3.exe
PATH %PYTHONPATH%;%PATH%
 
 
path %OSGEO4W_ROOT%\apps\Qt5\bin;%PATH%
 
set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\Qt5\plugins
set O4W_QT_PREFIX=%OSGEO4W_ROOT:\=/%/apps/Qt5
set O4W_QT_BINARIES=%OSGEO4W_ROOT:\=/%/apps/Qt5/bin
set O4W_QT_PLUGINS=%OSGEO4W_ROOT:\=/%/apps/Qt5/plugins
set O4W_QT_LIBRARIES=%OSGEO4W_ROOT:\=/%/apps/Qt5/lib
set O4W_QT_TRANSLATIONS=%OSGEO4W_ROOT:\=/%/apps/Qt5/translations
set O4W_QT_HEADERS=%OSGEO4W_ROOT:\=/%/apps/Qt5/include
set O4W_QT_DOC=%OSGEO4W_ROOT:\=/%/apps/Qt5/doc
 
set O4W_ROOT=%OSGEO4W_ROOT:\=/%
set LIB_DIR=%O4W_ROOT%
path %path%;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\bin\Hostx64\x64
path %PATH%;D:\envqgis\OSGeo4W\apps\Qt5\bin;D:\envqgis\cygwin64\bin
@set GRASS_PREFIX=D:\envqgis\OSGeo4W\apps\grass\grass83
@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
 
call "D:\envqgis\cmake\bin\cmake-gui.exe"

编译的文件结构:
在这里插入图片描述
cmd运行start_compile.bat
在这里插入图片描述
在这里插入图片描述
cmake填好源代码和构建目录:
在这里插入图片描述
点击configure按钮:
有警告:
CMake Warning at cmake/FindProj.cmake:21 (find_package):
Found package configuration file:

D:/envqgis/OSGeo4W/lib/cmake/proj/proj-config.cmake

but it set PROJ_FOUND to FALSE so package “PROJ” is considered to be NOT
FOUND. Reason given by package:

PROJ could not be found because dependency SQLite3 could not be found.

Call Stack (most recent call first):
CMakeLists.txt:361 (find_package)

没有处理,不知道会不会影响使用;期间,遇到不少问题,经过仔细检查才得到这个configure结果。

点击Generate按钮,生产解决方案(如果configure过程有错误,这个按钮不可用)
在这里插入图片描述
点击openproj,打开工程
在这里插入图片描述
在这里插入图片描述
需要全部构建(ALL_BUILD作为启动项)
构建后把将“D:\envqgis\cygwin64\bin”、“D:\envqgis\OSGeo4W\bin”、“D:\envqgis\OSGeo4W\apps\gdal-dev\bin”和“D:\envqgis\OSGeo4W\apps\Qt5\bin”路径下所有dll文件,拷贝到“qgis.exe”所在目录下。其中,%构建目录%是指CMake的“Where to build the binaries”指向的目录。

双击qgis.exe运行,如发现缺少的文件,需要补上。
运行后删除所有文件,运行中需要的保留,多余的就删除了。我最终的文件:

在这里插入图片描述
在这里插入图片描述
可以运行了!
很多问题没怎么搞明白。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵灵预测

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值