QGIS3.18编译教程

前言

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

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

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

文章中用到的软件都打包到这里了,https://download.csdn.net/download/KK_2018/88637648?spm=1001.2014.3001.5501
(都可以在文章底部的QQ群内的群文件中找到)

环境

  • VS2017 Community
  • Cmake 3.26
  • Cygwin64 2.925
  • OSGeo4W老版本
  • ninja.exe

本配置不需要另外安装QT,安装了也无碍

VS2017安装的时候选择“C++的桌面开发”
安装VS2017
CMake直接默认安装即可,重点说下OSGeo4W和Cygwin64的安装教程。

安装老版本OSGeo4W

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

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

安装Cygwin64

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

在这里插入图片描述

安装Cmake

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

下载QGIS3.18.3源码

下载链接:https://download.csdn.net/download/KK_2018/88369982
下载完解压,我解压到了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文件啦。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员班长

感谢您的一路相伴

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

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

打赏作者

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

抵扣说明:

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

余额充值