QGIS源码编译(vs2017-qgis3.18)
1、 下载QGIS源码
1.1、直接github下载qgis源码

下载后对文件进行解压
其中INSTALL.md为官方编译文档,可作为参考
1.2、或者使用GIT命令下载源码
使用git工具在指定路径下从github克隆源码,为了防止下载速度过慢可以使用http://github.com.cnpmjs.org镜像网站来替代http://github.com。
git clone https://github.com/qgis/QGIS
可搜索GIT关键字了解GIT安装和相关GIT命令。
2、 安装vs2017
2.1、下载在线安装包(https://msdn.itellyou.cn/)
MSDN选择vs2017社区版然后下载

2.2、安装c++组件
选择C++桌面开发即可,注意记住IDE安装的位置

3、 安装其他工具和依赖项
3.1、cmake安装
直接运行安装包即可,注意记住cmake安装的位置以及勾选将cmake添加为系统路径复选框
3.2、cygwin64安装
安装cygwin64,记得安装bison与flex包
搜索包名并下拉选择最新版本

3.2、安装OSgeo4W
打开OSgeo4W安装程序,选择Advanced Install, Install from Internet
下载站点可以使用武汉大学镜像,速度更快
http://gwmodel.whu.edu.cn/mirrors/osgeo4w
安装包选择qgis-dev-deps,zstd以及qgis-rel-deps
注:skip为未安装,keep为已安装。点击skip选择安装的版本


4、cmake-gui生成VS项目
4.1、设置环境变量
新建一个qgis-dev.bat文件,将以下内容复制进去(注释记得删除)
@echo off
#将VS路径修改为自己的VS路径
set VS150COMNTOOLS = D:\vs2017\Common7\Tools
call "D:\vs2017\VC\Auxiliary\Build\vcvarsall.bat" x64
#设置windows kits路径
set INCLUDE=%INCLUDE%;C:\Program Files (x86)\Windows Kits\10\Include
set LIB=%LIB%;C:\Program Files (x86)\Windows Kits\10\Lib
#设置OSGeo4W路径
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%
#设置VS路径和cygwin路径
path %path%;D:\vs2017\VC\Tools\MSVC\14.10.25017\bin;
path %PATH%;D:\CMake\bin;D:\cygwin64\bin
设置grass路径
@set GRASS_PREFIX=D:\OSGeo4W64\apps\grass\grass78
#设置include和lib路径
@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
直接运行bat文件,如果没有报错就在命令行窗口输入cmake-gui.exe,如果报错就一条条检查和修改文件路径

4.2、配置cmake
打开图形化cmake后,选择选择qgis源码路径以及build生成路径
点击configure选择vs2017 64位点击finish生成 
配置成功后点击generate,生成后在点击open project用VS打开工程

5、VS编译及打开
5.1、编译QGIS
VS打开工程后选择编译RelWithDebInfo模式,编译BuildALL项目即可。编译完成后将QGIS设置为启动项点击调试即可进行调试。

5.2、二次打开
第二次打开工程进行调试可以先运行qgis-dev.bat文件
再在命令行中输入cd D:\vs2017\Common7\IDE(把路径换为自己安装的路径)切换到IDE目录下
运行devenv.exe打开IDE进行调试

|