当前位置: 首页 > article >正文

告别编译!用OSGeo4W一键搞定QGIS 3.40.13二次开发环境(QtCreator配置详解)

告别编译用OSGeo4W一键搞定QGIS 3.40.13二次开发环境QtCreator配置详解当你想快速验证一个QGIS插件创意或测试某个自定义功能时最令人沮丧的莫过于花费数天时间搭建开发环境。传统QGIS二次开发需要从源码编译光是处理依赖项就足以劝退大多数开发者。好在OSGeo4W这个地理信息界的应用商店提供了开箱即用的开发套件配合QtCreator的智能配置30分钟就能获得完整的开发环境——无需编译、无需折腾依赖、更不必担心VS运行时库缺失导致的诡异错误。1. OSGeo4W安装精准选择开发套件安装OSGeo4W时90%的环境问题都源于组件选择不当。运行安装程序后在选择安装类型界面务必勾选Advanced Install这能解锁开发所需的关键组件。接下来几个关键选择将决定你的开发体验安装模式选择Install from Internet确保获取最新版本安装目录建议使用默认路径如C:\OSGeo4W避免空格和中文路径组件选择在搜索框输入qgis后展开Libs分类必须勾选qgis-ltr-deps包含所有运行时依赖库约500MBqgis-ltr-devel开发头文件和静态库约200MB注意如果安装过程中出现某些组件需要先安装其他包的提示务必选择安装所有依赖项。我曾经因为跳过这个步骤导致后续链接器报错浪费了两小时排查。安装完成后检查OSGeo4W\apps\qgis-ltr目录应包含以下关键内容bin/ # QGIS可执行文件 include/ # 开发头文件 lib/ # 静态库和链接库 plugins/ # 核心插件 resources/ # 图标和UI资源2. QtCreator配置避开三大经典陷阱2.1 配置Qt套件OSGeo4W自带与QGIS兼容的Qt版本通常为Qt5但直接使用会导致编译失败。打开QtCreator后进入工具 → 选项 → Kits → Qt Versions点击添加选择OSGeo4W\apps\Qt5\bin\qmake.exe返回Kits界面新建套件关键配置如下配置项正确值示例错误值后果Qt版本Qt 5.15.3 (OSGeo4W)系统其他Qt版本会导致ABI不兼容编译器Microsoft Visual C 2019必须与QGIS编译环境一致调试器CDB或系统自带GDB缺失会导致无法调试环境变量添加OSGEO4W_ROOTC:\OSGeo4W缺失会导致链接器报错2.2 解决jom编译问题当首次编译时遇到uic.exe无法启动错误这是典型的运行时库缺失。解决方法# 在OSGeo4W安装目录执行 cp bin/*.dll apps/Qt5/bin/这个命令将VC运行时库复制到Qt工具目录。我曾遇到一个隐蔽问题即使复制了所有dlluic仍然报错最终发现是需要安装对应版本的Visual Studio Redistributable可通过OSGeo4W安装vc_redist组件。2.3 处理DLL地狱开发时最常见的运行时错误是找不到xxx.dll可通过以下方法一劳永逸解决在项目*.pro文件中添加# 自动将QGIS的bin目录加入PATH win32 { QGIS_BIN $$(OSGEO4W_ROOT)/bin QMAKE_POST_LINK $$QGIS_BIN/*.dll $$OUT_PWD/release }或者在QtCreator的项目 → 运行设置中添加环境变量PATH%OSGEO4W_ROOT%\bin;%PATH%3. 项目模板快速启动开发为节省每次新建项目的时间我准备了基础QGIS插件模板包含以下关键配置CMakeLists.txt关键片段find_package(QGIS REQUIRED) include_directories( ${QGIS_INCLUDE_DIR} ${OSGEO4W_ROOT}/apps/qgis-ltr/include ) target_link_libraries(myplugin qgis_core qgis_gui ${QT_LIBRARIES} )qgis_plugin.json示例{ id: MyPlugin, name: 我的第一个插件, version: 0.1, qgisMinimumVersion: 3.16, description: 示例插件描述, icon: icon.png, author: Your Name }4. 调试技巧超越print的解决方案QtCreator调试QGIS插件有特殊技巧。首先在运行 → 调试设置中将C:\OSGeo4W\apps\qgis-ltr\bin\qgis-bin.exe设为调试目标添加启动参数--noplugins --code my_script.py设置工作目录为插件构建目录当需要跟踪QGIS内部调用时在代码中使用QgsMessageLog::logMessage(Debug point, MyPlugin, Qgis::Info);然后在QGIS的日志面板中实时查看输出。对于复杂问题我习惯用Process Monitor监控QGIS的文件访问和注册表操作这帮助我快速定位了插件加载时缺失的资源文件错误的注册表项导致QGIS崩溃权限问题导致的临时文件创建失败5. 性能优化让开发更流畅在低配机器上开发QGIS插件时这些调整能显著提升体验内存优化配置# 在qgis-ltr/bin/qt.conf中添加 [Paths] Prefix C:/OSGeo4W/apps/Qt5 Libraries C:/OSGeo4W/apps/qgis-ltr/lib Plugins C:/OSGeo4W/apps/Qt5/pluginsQtCreator响应加速关闭工具 → 选项 → C → 代码模型的自动重构在大型项目中使用CMake而不是qmake定期清理项目构建目录中的临时文件开发过程中如果遇到QGIS界面卡顿可以禁用不需要的插件# 在启动脚本中禁用插件 from qgis.utils import iface iface.pluginManager().unloadPlugin(grass) iface.pluginManager().unloadPlugin(processing)6. 扩展开发超越基础插件当需要开发更复杂的扩展时OSGeo4W还提供了这些有用组件gdal-devGDAL开发库处理栅格数据python3-pyqt5PyQt5绑定Python插件开发grass-devGRASS GIS集成开发例如要开发一个处理DEM数据的插件可以在*.pro中添加# 添加GDAL支持 LIBS -L$$(OSGEO4W_ROOT)/lib -lgdal INCLUDEPATH $$(OSGEO4W_ROOT)/include对于Python插件开发者确保在QtCreator中配置正确的Python解释器# 通常是OSGeo4W自带的Python C:\OSGeo4W\bin\python3.exe配置完成后可以在PyCharm和QtCreator之间无缝切换——前者用于算法开发后者用于UI调试。这种组合让我在开发水文分析插件时效率提升了3倍。

相关文章:

告别编译!用OSGeo4W一键搞定QGIS 3.40.13二次开发环境(QtCreator配置详解)

告别编译!用OSGeo4W一键搞定QGIS 3.40.13二次开发环境(QtCreator配置详解) 当你想快速验证一个QGIS插件创意或测试某个自定义功能时,最令人沮丧的莫过于花费数天时间搭建开发环境。传统QGIS二次开发需要从源码编译,光是…...

DWA算法参数互相影响揭秘:为什么调大直线速度后你的机器人不会转弯了?

DWA算法参数互相影响揭秘:为什么调大直线速度后你的机器人不会转弯了? 在移动机器人导航领域,DWA(Dynamic Window Approach)算法因其高效性和实用性被广泛应用。然而,许多开发者在调整参数时都会遇到一个典…...

终极Koikatu HF Patch配置指南:游戏体验全面升级方案

终极Koikatu HF Patch配置指南:游戏体验全面升级方案 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch Koikatu HF Patch作为非官方增强…...

ModernFlyouts:让Windows提示界面焕发新生的开源工具

ModernFlyouts:让Windows提示界面焕发新生的开源工具 【免费下载链接】ModernFlyouts A modern Fluent Design replacement for the old Metro themed flyouts present in Windows. 项目地址: https://gitcode.com/gh_mirrors/mo/ModernFlyouts 在Windows系统…...

颠覆式风扇调控:基于FanControl的智能散热解决方案

颠覆式风扇调控:基于FanControl的智能散热解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fa…...

3步安全卸载:EdgeRemover的非强制解决方案

3步安全卸载:EdgeRemover的非强制解决方案 【免费下载链接】EdgeRemover PowerShell script to remove Microsoft Edge in a non-forceful manner. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover Windows Edge卸载过程中如何确保系统安全&#x…...

COMSOL多场耦合地应力平衡开挖与衬砌支护案例:带衬砌与钢衬支护的实践研究

COMSOL 地应力平衡后开挖及衬砌支护案例(带衬砌、钢衬)隧道开挖模拟最头疼的就是初始地应力场的平衡问题。前些天用COMSOL折腾了个带衬砌支护的案例,今天把关键步骤拆开说说。咱们直接从地应力平衡开始,到开挖后钢衬安装一气呵成。…...

DLSS Swapper完全指南:5步实现游戏性能自由切换

DLSS Swapper完全指南:5步实现游戏性能自由切换 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾因游戏更新后DLSS版本不兼容导致帧率下降而烦恼?是否想要尝试新版本DLSS功能却发现手动替…...

7个突破瓶颈技巧:开源字体高效应用指南

7个突破瓶颈技巧:开源字体高效应用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在数字设计与开发领域,选择合适的字体常常让创作者陷入两难——商业字体…...

LoadRunner Developer实战:如何在VSCode中集成性能测试(含Jenkins流水线配置)

LoadRunner Developer实战:VSCode集成与Jenkins流水线配置全指南 在DevOps实践中,性能测试左移已成为提升软件质量的关键策略。作为Micro Focus推出的开发者友好型工具,LoadRunner Developer让开发团队能在编码阶段就发现性能瓶颈。本文将手…...

工业现场直通车:用C#和雷赛DMC3000库,从零搭建一个真实的运动控制上位机

工业现场直通车:用C#和雷赛DMC3000库构建高可靠运动控制上位机 在工业自动化领域,运动控制系统的稳定性和实时性直接决定了生产效率和产品质量。许多开发者从教学Demo过渡到实际工业应用时,常常面临理论与实践的断层——教材中的理想化代码无…...

P1103 书本整理【洛谷算法习题】

P1103 书本整理 网页链接 P1103 书本整理 题目描述 Frank 是一个非常喜爱整洁的人。他有一大堆书和一个书架,想要把书放在书架上。书架可以放下所有的书,所以 Frank 首先将书按高度顺序排列在书架上。但是 Frank 发现,由于很多书的宽度不…...

新手友好:在快马平台上通过实践快速掌握trea核心概念

作为一个刚接触trea技术的新手,我最近在InsCode(快马)平台上找到了特别适合入门的学习方式。这个平台最让我惊喜的是,不需要从零开始搭建环境,就能直接动手实践trea的核心概念。 理解trea的基本原理 刚开始接触trea时,最困惑的就…...

利用快马平台十分钟搭建9·1免费版软件安装指南网站原型

今天想和大家分享一个快速搭建软件安装指南网站的小技巧。最近有个朋友需要为91免费版软件做个安装说明网站,传统开发方式至少要花几天时间,但用InsCode(快马)平台十分钟就搞定了原型,特别适合需要快速验证想法的情况。 明确网站结构 首先梳理…...

零基础学linux:借助快马ai生成你的第一份命令手册与实战练习脚本

作为一个从图形界面转战Linux命令行的过来人,我完全理解新手面对黑底白字终端时的茫然感。最近在InsCode(快马)平台尝试用AI辅助学习时,发现它特别适合解决这个痛点——不仅能生成清晰易懂的命令手册,还能创建可交互的练习脚本,就…...

【飞机】倾转旋翼飞机齿轮箱建模与Matlab仿真(含非线性阻尼和立方摩擦效应)

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...

保姆级教程:用facenet-pytorch 0.3.0搭建人脸识别环境,CPU/GPU版本一键配置(附避坑清单)

从零构建facenet-pytorch人脸识别环境:CPU/GPU双版本全流程指南 第一次接触人脸识别项目时,最令人头疼的往往不是算法本身,而是环境配置这个"拦路虎"。不同硬件、不同CUDA版本、不同依赖库之间的兼容性问题,足以让新手…...

Axure RP中文界面终极配置指南:从新手到专家的高效本地化方案

Axure RP中文界面终极配置指南:从新手到专家的高效本地化方案 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn Axure …...

亚马逊Buy for Me代购服务全流程实测:从下单到收货的5个关键步骤

亚马逊Buy for Me代购服务实战手册:从零开始的安全跨境购物指南 跨境购物早已不是新鲜事,但每次打开海外电商网站时,那些"仅限本地销售"的提示依然让人头疼。去年冬天,我为了给家人买一款日本限定的保温杯,辗…...

深度学习框架YOLOV8模型如何训练水下生物检测数据集 构建基于YOLOv8➕pyqt5的水下生物检测系统 海胆‘, ‘海参‘, ‘扇贝‘, ‘海星‘, ‘水草

享基于YOLOv8➕pyqt5的水下生物检测系统内含7600张水下生物数据集 包括[‘海胆’, ‘海参’, ‘扇贝’, ‘海星’, ‘水草’],5类也可自行替换模型,使用该界面做其他检测 这是一个非常经典的计算机视觉应用项目,结合了深度学习的目标检测&…...

Go语言中的网络编程

Go语言中的网络编程 1. 网络编程的基本概念 网络编程是指编写在网络上进行通信的程序。在Go语言中,网络编程主要通过net包来实现,支持TCP、UDP、HTTP等多种协议。 2. TCP服务器 2.1 基本TCP服务器 package mainimport ("fmt""net" )…...

用Multisim 14.2仿真一个可调直流稳压电源:从变压器选型到波形调试全流程

Multisim 14.2仿真可调直流稳压电源:从元器件选型到波形优化的实战指南 在电子工程领域,仿真软件已经成为设计和验证电路不可或缺的工具。对于初学者而言,通过仿真可以快速理解电路原理、验证设计思路,而无需担心元器件损坏或安全…...

键盘连击终结者:开源工具KeyboardChatterBlocker让老化键盘重获新生

键盘连击终结者:开源工具KeyboardChatterBlocker让老化键盘重获新生 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 机械键盘…...

PathOfBuilding架构深度解析:流放之路离线构建规划器的技术实现方案

PathOfBuilding架构深度解析:流放之路离线构建规划器的技术实现方案 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding PathOfBuilding是《流放之路》最权威的离…...

从宇宙到地面:解析ICRS、GCRS、CIRS、TIRS和ITRS坐标系统的层级关系与应用场景

1. 从宇宙到地球:坐标系统的层级关系 想象一下你站在夜晚的旷野中仰望星空。那些闪烁的星星看似固定不动,但实际上它们的精确位置需要用一套复杂的坐标系统来描述。从天文学研究到日常导航,不同的坐标系统就像一套精密的俄罗斯套娃&#xff0…...

突破语言壁垒:FigmaCN开源插件让设计界面全中文呈现

突破语言壁垒:FigmaCN开源插件让设计界面全中文呈现 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 作为一名设计师,你是否也曾在使用Figma时因全英文界面而频繁…...

dfs经典例题——迷宫问题(利用二维数组优化方向判断)

思路:首先关于方向问题,我们可以设定一个默认方向,比如先默认向右,触底向下,然后再是向左向上。只需要平行在dfs函数中即可,每次递归会自动依次按照if条件进行合适方向的查找初始量:地图数组&am…...

离职见人品:软件测试工程师如何优雅交接,为职业生涯赋能

在职业旅程的每一次转折点,如何“结束”与如何“开始”同等重要。对于软件测试工程师而言,离职远非简单地提交代码、归还电脑那么简单。它更像是一次对个人职业素养、专业精神和人脉网络的集中检阅。一次专业、周到、负责任的交接,不仅能确保…...

XXL-SSO用户画像构建:基于认证数据的用户行为分析

XXL-SSO用户画像构建:基于认证数据的用户行为分析 XXL-SSO是一款分布式单点登录框架,通过统一的认证中心实现多系统间的用户身份共享。在实际应用中,XXL-SSO积累的认证数据不仅可用于身份验证,还能通过用户画像构建实现精细化运营…...

ViPER4Windows-Patcher 音效修复工具:让无损音质在Windows 10/11完美呈现

ViPER4Windows-Patcher 音效修复工具:让无损音质在Windows 10/11完美呈现 【免费下载链接】ViPER4Windows-Patcher Patches for fix ViPER4Windows issues on Windows-10/11. 项目地址: https://gitcode.com/gh_mirrors/vi/ViPER4Windows-Patcher &#x1f3…...