QGIS从源码启动遇到的问题汇总

本文介绍在Windows 10环境下从源码编译安装QGIS过程中遇到的问题及解决方案,包括缺失DLL文件、程序启动后立即退出、导入错误等,并提供了具体的调试步骤和环境配置建议。

关于如何从源码编译QGIS,请参见《Win10下通过源码编译安装QGIS》。源码编译出可执行文件后,启动会遇到各种问题。说明如下:

1.开发环境说明

  • Qt:5.14.1
  • VS:2019
  • CMake:3.23.0
  • QGIS:3.26.2
  • 操作系统:Windows 10
  • 调试模式:release版

注意:请不要用debug版本调试,具体原因参见 Win10下通过源码编译安装QGIS》。

2.问题说明

2.1.Windows Error:找不到指定的模块

报错如下:

解决方法:搜索E:\QGIS\OSGeo4W目录下的所有的dll及plugins目录将其放到程序同一个目录下。

 注意:当QGIS.exe启动起来,可以尝试将一些不必要的dll删除,如:在release版本下可以删除debug版的Qt相关的dll,反复试,直到所需dll最少。其中上述目录、库路径为Win10下通过源码编译安装QGIS博文编译安装之后生成的路径,请参见该博文并根据自己本机实际路径更改,下同。 

2.2 启动立马退出

启动调试时,程序退出,退出的位置在Qgispython模块qgspythonutilsimpl.cpp文件的QgsPythonUtilsImpl类的init()运行到Py_Initialize()行代码程序崩溃退出。解决方法如下:在path环境变量下,添加变量值为:

 添加环境变量PYTHONPATH,变量值如下:

 2.3 ImportError:DLL load failed while import QtCore

在2.2节配置好的条件下,在cmd中,敲入python,然后在python的命令行敲入:

from qgis.core import*

弹出如下:

 解决方法如下:

安装QGIS官方的QGIS-OSGeo4W-3.26.2-1.msi,安装完后将QGIS3.26.2\bin目录复制并替换E:\QGIS\OSGeo4W\bin,(替换之前请注意备份),并将E:\QGIS\OSGeo4W\bin的protoc.exc拷贝过去。

2.4.ModuleNotFound Error:No Module named 'qgis._core'

报错如下:

 这个问题找了3天,至今没解决,我感觉同2.3节问题是同一个问题,有知道怎么解决的,敬请留言,十分感谢,这个问题不解决,主界面弹出如下:

即有个红色错误提示框。 

2.5 面板节点有些没有 

 原因是QGIS源码provider_开头的插件工程没有编译成dll。

2.6 界面有些图标不显示

       如2.4节图所示,很多图标不显示,解决方法,参见《QGIS.exe图标不显示问题》。

2.7 Qt 平台插件未初始化

弹出错误如下:

 解决方法如下:

将E:\QGIS\OSGeo4W\apps\qt5\plugins\platforms拷贝到qgis.exe同一目录下。

 参考链接:Qgis+python开发环境配置和简单教程_特快仓鼠的博客-优快云博客_python qgis

<think>好的,我现在需要回答用户关于如何编译QGIS动态库的问题。首先,用户提到了他们使用的是Qt 5.14.2和VS 2017,而QGIS的官方版本中没有兼容的版本,所以他们需要自行编译。我需要确保提供的步骤准确,并且符合他们的环境。 首先,我应该参考用户提供的引用资料。引用[1]提到他们尝试用Qt 5.14.2、VS 2017和QGIS 3.28.4进行编译。引用[2]则是一个QGIS3.18的编译教程,其中提到了项目生成的顺序和设置。我需要将这些信息整合到步骤中。 接下来,我需要考虑编译QGIS的一般步骤,包括环境准备、获取源码、配置依赖、生成构建文件、编译顺序以及处理可能出现的问题。用户需要动态库,所以可能需要生成动态链接库而不是静态库。在CMake配置时,需要确保相关选项如BUILD_SHARED_LIBS设置为ON。 同时,用户的环境是Windows下的VS 2017,所以步骤需要针对Visual Studio进行调整。例如,使用CMake生成解决方案文件,然后使用VS来编译。引用[2]中提到按照特定顺序生成项目,比如qgis_core,qgis_analysis等,这需要强调正确的编译顺序以避免依赖问题。 此外,需要注意依赖项的管理,比如第三方库可能需要预先安装或通过CMake配置路径。用户可能遇到的问题包括依赖项路径错误、版本冲突或编译错误,需要给出处理建议,比如检查日志、清理构建目录等。 最后,应该生成相关问题,帮助用户进一步解决可能遇到的困难,比如性能优化、处理错误的方法,或者跨平台编译的问题。需要确保问题相关且有助于深入理解编译过程。 总结步骤时,要分点清晰,语言简洁,确保用户能逐步跟随操作。同时,引用资料中的关键点要正确标注,如项目生成顺序和启动项目设置。需要验证每一步的可行性,比如CMake参数是否正确,编译顺序是否合理,避免遗漏关键步骤。</think>以下是在Windows环境下使用Qt 5.14.2和Visual Studio 2017编译QGIS动态库的步骤: ### 一、环境准备 1. 安装Visual Studio 2017 Enterprise,勾选"使用C++的桌面开发"组件 2. 安装Qt 5.14.2并配置环境变量 3. 安装CMake 3.20+和Python 3.6+ ### 二、获取源码与依赖 ```bash git clone https://github.com/qgis/QGIS.git --branch final-3_28_4 ``` 需通过OSGeo4W安装器获取第三方依赖库(GDAL/PROJ等)[^1] ### 三、CMake配置 1. 创建构建目录`build`和输出目录`output` 2. 设置关键参数: ``` -DCMAKE_PREFIX_PATH=C:/Qt/5.14.2/msvc2017_64 -DCMAKE_INSTALL_PREFIX=./output -DBUILD_SHARED_LIBS=ON # 关键动态库配置 -DENABLE_TESTS=OFF ``` ### 四、生成解决方案 1. 在Visual Studio中打开生成的`QGIS.sln` 2. 按顺序编译: ```text ① qgis_core ② qgis_analysis ③ qgis_gui ④ qgis_app ``` 最后生成`ALL_BUILD`项目[^2] ### 五、生成动态库 1. 右键`INSTALL`项目选择"生成" 2. 动态库将输出到`output`目录: ```text qgis_core.dll qgis_analysis.dll qgis_gui.dll ``` ### 六、常见问题处理 1. 依赖路径错误:检查`.cmake`文件中的库路径 2. Qt版本冲突:删除CMake缓存重新配置 3. 编译失败:优先修复`qgis_core`模块错误
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值