首先感谢博客 济南友泉软件有限公司 提供的顺序教程。
博客地址: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生成目录下,可解决这个问题。
请原谅我满是怒气的写下这篇博客,是我无能......
标签:bin,QGIS3.22,VS2019,qgis,OSGeo4W,编译,exe,拷贝到,window10 From: https://www.cnblogs.com/learning77/p/17486086.html