QGIS3.22.0+VS2019 window10编译

发布时间 2023-06-16 17:24:17作者: 77_learning

首先感谢博客 济南友泉软件有限公司 提供的顺序教程。

博客地址:https://blog.csdn.net/qq_26221775/article/details/122792445

这篇博客主要是表示编译时遇到的坑。

1. 一定使用vs2019进行编译。

  我刚开始想使用vs2017编译。因此遇到了两个坑。

    (1)vs2017编译qgis_core对libprotobuf-lite.lib报错,报错为_CxxFrameHand.

      成功的解决办法:安装vs2019,重新cmakevs2019路径。再次编译成功。

      错误的解决办法(希望能够帮助排错):头文件上加了#define _CRT_SECURE_NO_DEPRECATE,并且在属性-代码生成-启用c++异常-否。此办法并没有解决问题。浪费编译时间30分钟。

    (2)cmake完成后,编译qgis_core,其会首先编译qgis_core_autogen,但是其并没有使用protoc.exe将vector_tile.proto编译成vector_tile.h以及vector_tile.cc。或者不会在build/core中生成相关.h头文件,会一直报错缺少.h。

      成功的解决办法:重新更换cmake编译,并且安装完整的Visual C++ Redistributable for Visual Studio 2015-2022环境,并且在环境变量的path中添加OSGeo4W/bin路径以及cygwin64\bin路径。重启电脑。该问题解决,但是会出现上面(1)中的问题。

2. 编译完成后,打开qgis.exe是一定会缺少依赖的。请把OSGeo4W/bin以及cygwin64\bin拷贝到qgis.exe生成目录下。并将OSGeo4W\apps\Qt5\bin以及OSGeo4W\apps\Qt5\plugins同样拷贝到qgis.exe生成目录下。

  如果你遇到一下问题,可以使用上面的方法解决:

    (1)Could not load qgis_app.dll

  

    这是缺少相关依赖,将OSGeo4W/bin以及cygwin64\bin拷贝到qgis.exe生成目录下,并将OSGeo4W\apps\Qt5\bin拷贝到qgis.exe生成目录下可以解决。请将OSGeo4W\apps\Qt5\plugins同样拷贝到qgis.exe生成目录下。不然会出现以下问题:

  (2)no Qt platform plugin cound be initialized.

    请将OSGeo4W\apps\Qt5\plugins同样拷贝到qgis.exe生成目录下,可解决这个问题。

  请原谅我满是怒气的写下这篇博客,是我无能......