-
QGIS源码:
- 官网下载链接
- 直接下载3.18.1源码QGIS3.18.1.tar.bz
-
安装开发环境包:
– 通过OSGeo4W配置开源库:- 下载安装OSGeo4W网络安装包:用于快速安装QGIS依赖的第三方开源库开发环境
- 直接下载OSGeo4Wosgeo42-setup
- 下载安装Cygwin:必需的bison与flex包
- 下载安装Cmake >3.18:读取配置文件创建VS工程,用于编译
- 下载安装VS2015/2017/2019
-
开发环境配置:
打开cygwin64安装程序,记得安装bison与flex包
打开OSgeo4W安装程序,选择Advanced Install, Install from Internet
下载站点可以使用武汉大学镜像,速度更快
http://gwmodel.whu.edu.cn/mirrors/osgeo4w
安装包选择qgis-dev-deps,zstd。
- 两种生成VS工程的方式
1.CMake-gui生成VS项目编译:
赋值以下内容生成一个.bat脚本,以qgis-dev.bat为例。
```powershell
@echo off
set VS140COMNTOOLS = C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
set INCLUDE=%INCLUDE%;D:\Windows Kits\10\Include
set LIB=%LIB%;D:\Windows Kits\10\Lib
#注意VS环境的设置
set OSGEO4W_ROOT=C:\OSGeo4W64
#注意OSGeo4W路径的设置
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%
path %path%;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin;
path %PATH%;D:\CMake\bin;C:\cygwin64\bin
#注意Cmake和cyginwin路径的设置
@set GRASS_PREFIX=C:\OSGeo4W64\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
@cmd
注意以上环境变量设置正确。双击运行qgis-dev.bat后,控制台输入cmake-gui,启动cmake图形程序界面。
where is source code选择源代码路径,下一栏设置输出路径,点击左下角Configure按钮,选择VS平台,等待配置完成。如果配置出现错误,根据错误信息调整依赖路径,成功后点击Generate按钮,完成后点击Open Project。
VS启动后,选择编译RelWithDebInfo模式,编译BuildALL项目即可。编译完成后进行调试。
2.使用QGIS配置脚本生成VS项目编译:
打开源代码目录下C:…\ms-windows\osgeo4w\msvc-env.bat,编辑其中的VS环境变量。
复制以下命令,保存为OSGeo4W-dev.bat脚本
@echo off
call C:\OSGeo4W64\qgis-3.18.1\ms-windows\osgeo4w\msvc-env.bat x86_64
@cmd
执行OSGeo4W-dev.bat后,cd到QGIS源码目录,C:…\ms-windows\osgeo4w\,调用configonly.bat,等待生成VS项目,之后打开C:\OSGeo4W64\qgis-3.18.1\ms-windows\osgeo4w\build-qgis-test-x86_64\qgis.sln(注意,开启之前需要执行执行OSGeo4W-dev.bat,确保环境变量正确添加),按照需要的模式启动编译即可。
- 调试QGIS
在BuildALL项目的属性页进行如下设置,
再将其设为启动项目,即可进行调试
有任何疑问欢迎留言~