QGIS3.18编译教程

前言

在之前,我编译了一个3.28版本的,但是Python模块出现了问题,导致用不了Python插件。真是无语,就当给开发者当实验小白鼠了。
在这之后,我又编译了3.32版本,还是出现了一样的问题。

于是,我直接选择了最多人编译的3.16,妈呀,真香,直接成功!

但是我编译出来的版本,在加载分隔文本图层后,选择渐进颜色带时,它内置的几条色带全部是一个颜色。。。然后换了3.18版本,一切正常!应粉丝的请求,写一下3.18版本的编译过程。

环境

VS2017 Community、Cmake 3.26.3、Cygwin64 2.925、OSGeo4W

下载OSGeo4W

「osgeo4w-setup-x86_64.exe」https://www.aliyundrive.com/s/REqW82JrFDu
提取码: q6i0

下载完成后打开,选择高级安装
在这里插入图片描述

选择武汉大学的安装源
武汉大学OSGeo4W安装源
在这里插入图片描述
然后搜索qgis,把凡是qgis3.18版本的全部选择
在这里插入图片描述
选择zstd
在这里插入图片描述
然后点击下一步即可,同时会把开发的依赖环境一起安装。
安装完成的目录如下,红色箭头指向的部分刚安装完是没有的。
在这里插入图片描述

下载Cygwin64

下载地址:https://www.cygwin.com/setup-x86_64.exe
下载完打开,搜索bison和flex,安装即可。
在这里插入图片描述
在这里插入图片描述

安装Cmake

下载地址:https://cmake.org/download/
下载完毕安装即可。

下载QGIS3.18.3源码

我用夸克网盘分享了「qgis-3.18.3.tar.bz2」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/82ec5dc5ad50
下载完解压,我解压到了OSGeo4W的根目录。

创建批处理命令

新建一个bat文件,我的是创建在了OSGeo4W的安装目录下,我起的名字是build.bat
写入以下内容,记得把对应路径改成自己的。

@echo off

  REM VCSDK

  set VCSDK=10.0.17763.0

  set OSGEO4W_ROOT=D:\OSGeo4W64

  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%

  call "D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64

  path %path%;D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin

  path %PATH%;C:\Program Files\CMake\bin;C:\cygwin64\bin

  @set GRASS_PREFIX7=D:/OSGeo4W64/apps/grass/grass78
  set GRASS7=
  if exist %OSGEO4W_ROOT%\bin\grass74.bat set GRASS7=%OSGEO4W_ROOT%\bin\grass74.bat
  if exist %OSGEO4W_ROOT%\bin\grass76.bat set GRASS7=%OSGEO4W_ROOT%\bin\grass76.bat
  if exist %OSGEO4W_ROOT%\bin\grass78.bat set GRASS7=%OSGEO4W_ROOT%\bin\grass78.bat
  if "%GRASS7%"=="" (echo GRASS7 not found & goto error)
  @set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\include

  @set LIB=%LIB%;%OSGEO4W_ROOT%\lib;%OSGEO4W_ROOT%\lib

  REM OSGeo4W_2的安装路径

  set LIB=%LIB%;%OSGEO4W_ROOT%\apps\Qt5\lib;%OSGEO4W_ROOT%\lib

  set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\apps\Qt5\include;%OSGEO4W_ROOT%\include

  REM call "D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ devenv.exe"

 @cmd
 

然后保存,双击这个bat文件运行,运行后输入cmake-gui打开cmake。
在这里插入图片描述

使用Cmake生成项目

输入cmake-gui后,会自动打开Cmake窗口。第一行输入源码的解压位置,第二行输入项目编译输出的位置。然后点击Configure,选择x64。没问题的会提示Configuring done,有问题需要对应地进行修改(可以私信我解决)。Configuring done后,把上面的ENABLE_TESTS取消勾选,如果不想要Python模块,把下面的WITH_BINDINGS也取消勾选了。很多处理工具依赖Python,这个不建议取消。
在这里插入图片描述
在这里插入图片描述

然后每次修改配置后,需要再次点击Configure,Configuring done没问题后,点击Generate,出现Generating done就成功了,然后点击Open Project,会自动调用VS2017,打开build目录的QGIS 3.18.3项目。
在这里插入图片描述

使用VS编译项目

打开项目后,把Debug环境切换为Release,然后按照qgis_core,qgis_analysis,qgis_app,qgis_gui,ALL_BUILD的顺序依次生成项目。
做完这些之后,把qgis项目设置为启动项目。
在这里插入图片描述
然后点击本地调试即可。
在这里插入图片描述

后续说明

项目关闭之后,不能直接用VS打开,因为很多环境变量没有配置,项目会运行不起来。
一种正确做法是,双击创建的build.bat文件,然后按照同样的步骤打开cmake-gui,在cmake中打开项目
(不需要再点击Configure和Generate)。

第二种办法是,在build-3.18.3\output\bin\Release目录下创建一个新的bat文件,我起的名字是Build_Run.bat,填入如下内容,记得修改为自己的路径。

@echo off
REM build.bat文件路径
call D:\OSGeo4W64\build.bat
REM gdal环境配置文件的路径
call D:\OSGeo4W64\bin\gdal-dev-env.bat
@cmd

双击这个Build_Run.bat,然后输入

start devenv

在打开的VS窗口中,选择我们的qgis项目即可。
在这里插入图片描述
如果我们想不打开VS直接运行我们编译出来的qgis怎么办,也很简单,还是双击上面创建的Build_Run.bat
然后输入start qgis即可。
在这里插入图片描述
方便起见,可以把这个Build_Run.bat发送到桌面,就可以在桌面运行这个Build_Run.bat文件啦。
在这里插入图片描述文章来源地址https://uudwc.com/A/2010V

原文地址:https://blog.csdn.net/KK_2018/article/details/133234384

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年09月24日 15:40
下一篇 2023年09月24日 15:40