QGIS源码编译:QGIS3.22.4+vs2019

一、QGIS源码下载

QGIS源码下载:Releases · qgis/QGIS · GitHub

选择3.22.4源码

QGIS源码编译:QGIS3.22.4+vs2019_第1张图片

二、安装环境

1.安装vs2019

本次编译安装的是vs2019 Community。注意vs官网默认下载最新版,目前是2022,可以在搜索框中搜索"vs2019"下载以往版本,勾选如下图所示的选项。

VS下载地址:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux

在这里插入图片描述

2.安装Cmake

本编译用的3.23.2,Cmake下载地址:Download | CMake

 3.安装Cygwin64

安装flex及bison
Cygwin64下载地址:Cygwin Installation

 在这里插入图片描述

在这里插入图片描述

 QGIS源码编译:QGIS3.22.4+vs2019_第2张图片

 在这里插入图片描述

4.安装 OSGeo4w

可以从qgis官网上下载OSGeo4w:Download QGIS

QGIS源码编译:QGIS3.22.4+vs2019_第3张图片

 

在这里插入图片描述

在这里插入图片描述

一直下一页

在这里插入图片描述

在这里插入图片描述

选择最新版的qgis-dev-deps

在这里插入图片描述

 三、配置环境

1.添加各种环境变量

(1)新建.bat文件

新建一个.bat文件,放在任意路径都可,文件内容如下,其中各项路径需要根据本机情况更改

@echo off
set VS150COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\Tools\
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\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=C:\OSGeo4W
call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
SET PYTHONHOME=%OSGEO4W_ROOT%\apps\Python39
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 (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin
path %PATH%;C:\OSGeo4W\apps\Qt5\bin;C:\cygwin64\bin
@set GRASS_PREFIX=C:\OSGeo4W\apps\grass\grass78
@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 "C:\Program Files\CMake\bin\cmake-gui.exe"

(2)执行.bat文件

打开cmd命令行执行工具,运行该.bat文件

 QGIS源码编译:QGIS3.22.4+vs2019_第4张图片

2.CMAKE配置

在执行上面的.bat文件时,会自动打开CMAKE的界面,界面上选择源码及编译后的地址;再点击Configure,如果环境配置的有问题,会弹出提示(比如我的GDAL路径有问题),按照本地路径更改value中的地址后再点Configure->Generate->Open Project.

QGIS源码编译:QGIS3.22.4+vs2019_第5张图片

3.编译

 在Visual Studio 2019中,将debug模式改为ReWithdebInfo;设置qgis为启动项,按照qgis_core、qgis_gui、qgis_app、qgis、all_build的顺序依次编译,编译后在对应的RelWithDebInfo 目录下会生成相应的dll与exe(比如我的路径C:\QGIS\build\output\bin\RelWithDebInfo)

QGIS源码编译:QGIS3.22.4+vs2019_第6张图片

4.问题及解决方案

(1).启动qgis.exe时可能会报qgis_app.dll无法加载或找不到的问题,而该dll又在该目录下。

原因是调用qgis_app.dll时所依赖的其他dll未加载。

解决方法 :将OSGeo4W\bin下的dll以及OSGeo4W\apps\Qt5\bin下的dll拷贝到qgis.exe所在目录即可。

QGIS源码编译:QGIS3.22.4+vs2019_第7张图片

(2)上面的问题解决后,再启动时可能会报如下错误:

QGIS源码编译:QGIS3.22.4+vs2019_第8张图片

解决方法:将 OSGeo4W\apps\Qt5下的plugins文件夹拷贝到qgis.exe所在目录即可。

你可能感兴趣的:(QGIS,其他)