从源码编译QGIS--vs2022+QGIS3.34

1、源码

源码地址QGIS3.34.11
解压到目录:C:\Source\QGIS-final-3_34_11
QGIS源码目录

2、安装vs2022

下载地址 Visual Studio 2022 Community Edition.
选择“使用C++的桌面开发"
选择“使用C++的桌面开发”
在这里插入图片描述

3、安装cygwin 64bit

3.1、安装

下载地址:setup-x86_64.exe
根目录:C:\cygwin64
在这里插入图片描述
下载站点
在这里插入图片描述

3.2、下载包

  • bison
  • flex
  • git(装了也得装)(不理解)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

4、安装OSGeo4W

4.1、安装

下载地址:osgeo4w-setup.exe
根目录:C:\OSGeo4W
在这里插入图片描述
下载站点
在这里插入图片描述

4.2、下载包

  • qgis-ltr-deps
    在这里插入图片描述

5、添加环境变量

在系统中添加环境变量或者在CMakeLists.txt中添加环境变量,效果相同。

5.1在系统中添加环境变量

5.1.1、path变量中添加路径

  • C:\cygwin64\bin
  • C:\cygwin64\lib
  • C:\OSGeo4W\bin
  • C:\OSGeo4W\lib
  • C:\OSGeo4W\include
  • C:\OSGeo4W\apps\Python312
  • C:\OSGeo4W\apps\Python312\Scripts
  • C:\OSGeo4W\apps\Qt5
  • C:\OSGeo4W\apps\Qt5\include
  • C:\OSGeo4W\apps\Qt5\bin
  • C:\OSGeo4W\apps\Qt5\lib

在这里插入图片描述

5.1.2、添加python环境变量

  • PYTHONHOME=C:\OSGeo4W\apps\Python312
  • PYTHON_PATH=C:\OSGeo4W\apps\Python312;C:\OSGeo4W\apps\Python312\Scripts

5.2、在CMakeLists.txt中设置环境变量

以上环境变量仅仅在编译的时候能用的到,为了避免与系统环境产生冲突,在CMakeLists.txt文件中设置环境变量。

if(WIN32)
  set(ENV{Path} "$ENV{Path};C:/cygwin64/bin;C:/cygwin64/lib")
  set(ENV{Path} "$ENV{Path};C:/OSGeo4W/bin;C:/OSGeo4W/lib;C:/OSGeo4W/include")
  set(ENV{Path} "$ENV{Path};C:/OSGeo4W/apps/Python312;C:/OSGeo4W/apps/Python312/Scripts")
  set(ENV{Path} "$ENV{Path};C:/OSGeo4W/apps/Qt5;C:/OSGeo4W/apps/Qt5/include")
  set(ENV{Path} "$ENV{Path};C:/OSGeo4W/apps/Qt5/bin;C:/OSGeo4W/apps/Qt5/lib")
  set(ENV{PYTHONHOME} "C:/OSGeo4W/apps/Python312")
  set(env{PYTHON_PATH} "C:/OSGeo4W/apps/Python312;C:/OSGeo4W/apps/Python312/Scripts")
endif()

在这里插入图片描述

6、设置多处理器编译

多处理器编译可加快编译速度,如果电脑性能较好,可以开启多处理器编译。
在CMakeLists.txt文件中添加如下代码即可,一定要在project命令行之后添加

project(qgis VERSION ${COMPLETE_VERSION})

IF(MSVC)
# This option is to enable the /MP switch for Visual Studio 2005 and above compilers
  OPTION(WIN32_USE_MP "Set to ON to build QGIS with the /MP option (Visual Studio 2005 and above)." ON)
  MARK_AS_ADVANCED(WIN32_USE_MP)
  IF(WIN32_USE_MP)
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
  ENDIF(WIN32_USE_MP)
ENDIF(MSVC)

在这里插入图片描述

7、生成vs2022解决方案

使用vs2022自带的cmake工具生成

使用vs2022打开源码目录
在这里插入图片描述
在这里插入图片描述
配置为release
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
cmake 生成器选择为
在这里插入图片描述
在这里插入图片描述

配置缓存
点击配置缓存,当输出窗口中提示CMake生成完毕后,即可在目录
C:\Source\QGIS-final-3_34_11\out\build\x64-Release
中看到生成的“QGIS.sln"文件。

在这里插入图片描述
在这里插入图片描述

8、编译

用vs2022打开上一步生成的"qgis.sln"解决方案。点击“生成解决方案”,即可。
在这里插入图片描述

9、查看多处理器编译

打开qgis项目属性页,查看是否已经设置“多处理器编译”,其他项目类同。

在这里插入图片描述

10、拷贝依赖库

将“C:\cygwin64\bin”、“C:\OSGeo4W\bin”和“C:\OSGeo4W\apps\Qt5\bin”路径下所有dll文件,拷贝到“C:\Source\QGIS-final-3_34_11\out\build\x64-Release\output\bin\RelWithDebInfo”下。

将“C:\OSGeo4W\apps\Qt5\plugins\”目录中的platforms文件夹(含文件夹)拷贝到“C:\Source\QGIS-final-3_34_11\out\build\x64-Release\output\bin\RelWithDebInfo”目录下。

11、启动调试

编译成功后,将“qgis”项目设置为启动项,按“F5”即可启动调试项目。
在这里插入图片描述

12、参考资料

官方编译说明
QGIS在Windows下的编译——QGIS3.28.15 + Qt5.15.3 +CMake3.28.0 + VS2022 —64位版本
Qt项目运行失败: no Qt platform plugin cloud be initialized

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值