首页 > 系统相关 >QGIS开发笔记(二):Windows安装版二次开发环境搭建(上):安装OSGeo4W运行依赖其Qt的基础环境Demo

QGIS开发笔记(二):Windows安装版二次开发环境搭建(上):安装OSGeo4W运行依赖其Qt的基础环境Demo

时间:2024-05-23 10:09:12浏览次数:37  
标签:Qt 编译 qgis OSGeo4W 安装版 版本 二次开发 安装

前言

  使用QGis的目的是进行二次开发,或者说是融入我们的应用(无人车、无人船、无人机),本片描述搭建QGis二次基础开发环境,由于实在是太长了,进行了分篇:

  • 上半部分:主要是安装好后,使用QtCreator可以使用QGIs的apps下的Qt使用对应的编译器编译不带qgis的空工程。
  • 下半部分:在上半部分基础上添加qgis的依赖,并实现一个qgis的完全独立模模块化的应用,让没有安装qgis库的使用工程模板可以开始二次开发编译。
 

Demo

  空demo
  在这里插入图片描述

  运行qgis的demo
  请添加图片描述

 

注意1:注意IDE

  基于Qtcreator,所以搭建QtCreator的IDE模块化QGIS基础环境,后续qmake的加载看出使用的msvc2017x64的库,没有的话请安装vs2017x64的msvc编译器
  在这里插入图片描述

 

注意2:本次安装途径与直接安装文件不同

  这与直接通过下载QGIs的安装文件下载文件是不同的:
  在这里插入图片描述

 

注意3:本途径安装已经指定了使用的Qt版本和QtSdk

  在这里插入图片描述

 

Windows上部署QGis二次开发环境

步骤一:下载安装OSGeo4W安装文件

  下载地址:https://www.qgis.org/en/site/forusers/download.html
  在这里插入图片描述

  在这里插入图片描述

  

步骤二:安装OSGeo4W

  在这里插入图片描述

  点击安装:
  在这里插入图片描述

  选择自定义安装:
  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  下面这个界面宣布选择开始菜单都会有,直接下一步:
  在这里插入图片描述

  在这里插入图片描述

  选择第一个挺快的,尝试过其他国内源无法连接上:
  在这里插入图片描述

  输入qgis-ltr,这代表帅选qgis的最新版本,这里显示是3.34,外面直接下的是3.36
  在这里插入图片描述

  在这里插入图片描述

  都同意下一步,最后开始下载:
  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  检查一下:
  在这里插入图片描述

  最新的稳定发布版本,检查一下:
  在这里插入图片描述

  在这里插入图片描述

步骤三:打开QtCreator配置qmake编译器

  Qt5.15.x版本默认使用QtCreator6.x,但是我们先使用Qt5.9.3带的QtCreator为4.4.1。
  在这里插入图片描述

  暂时也不知道lib是哪个msvc版本的,但是添加qmake就知道了,往下走:
  在这里插入图片描述

  在这里插入图片描述

  知道了msvc2017x64版本,就要配置编译器了,本机已经安装了vs系列,并且安装了msvc2017x64版本,无需配置,配置页面如下:

步骤四:新构建套件QGis3.34.7_Qt5.15.13_msvc2017x64

  注意名称、编译器(vs2017x64是msvc2017x64是v15版本)和qmake的版本选择,配置通过则会是黄色惊叹号,构建套没有问题。(构建套有问题则会是红色,无法编译使用。)
  在这里插入图片描述

步骤五:新建一个测试空工程检测Qt配置

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  查看“入坑一:jom编译错误”解决,然后继续:
  在这里插入图片描述

  查看“入坑二:编译uic.exe错误代码0xc0000135”解决,然后继续:
  在这里插入图片描述

  至此,在QtCreator使用QGIs带的QtSdk成功。

 

入坑

入坑一:jom编译错误

问题

  Jom编译错误
  在这里插入图片描述

原理

  使用nmake,不使用jon

解决

  在这里插入图片描述

入坑二:编译uic.exe错误代码”0xc0000135”

问题

  在这里插入图片描述

过程

  有些库无法调用到所以无法启动,使用cmd查看一番:
  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  这些库本身还依赖了一些,拷贝过去缺失的继续cmd会提示,这里不一一列出了。
  搜索后得到:
  在这里插入图片描述

  在这里插入图片描述

  所以,Qt编译运行环境需要包含OSGeo4W的bin下(可以推断:对应的库也可能需要包含OSGeo4W的lib路径)。

解决

  在这里插入图片描述

  这里直接复制缺少的几个库到Qt的bin下(有可能没列全,请使用cmd自行尝试),也可以修改环境变量,但是笔者为了不影响整台电脑的其他环境,不添加系统环境变量。
  在这里插入图片描述

标签:Qt,编译,qgis,OSGeo4W,安装版,版本,二次开发,安装
From: https://www.cnblogs.com/qq21497936/p/18207725

相关文章

  • 【老鼠看不懂的数据结构】FHQTreap 初识
    Treap弱平衡的随机性很强的老鼠看不懂的平衡树Q:为什么叫Treap?A:看看二叉搜索树(BST)和堆(Heap),组合起来就是Treap其中,二叉搜索树的性质是:左子节点的值(val)比父节点小右子节点的值(val)比父节点大如果这些节点的值都一样,这棵树就会退化成一颗(?)链。对,我知道你在想......
  • 3562-Qt工程编译说明、GPU核心使用说明
     ......
  • Qt 等待提示框(QPropertyAnimation)
    效果由于录制程序的原因,引起gif效果不清晰,可忽略。资源需要几张不同阶段的图标进行切换,这里使用8张。源码QPropertyAnimation动画里面并不支持旋转的属性,所以我们可以通过自定义来完成。1classMainWindow:publicCustomWindow2{3Q_OBJECT4......
  • Qt 等待提示框(QMovie)
    关于gif的使用在实际项目中我用的并不多,因为我感觉瑕疵挺多的,很多时候锯齿比较严重,当然与图存在很大的关系。效果由于录制程序的原因,引起gif效果不清晰,可忽略。源码通过使用QMovie来设置动画、可以调用setSpeed()设置动画速度、start()启动动画、stop()停止动画等。1QMovi......
  • Qt 等待提示框(QTimer)
    效果资源需要几张不同阶段的图标进行切换,这里使用8张。源码QTimer通过setInterval设置100毫秒超时时间,每隔100毫秒后进行图标的更换,达到旋转效果。1MainWindow::MainWindow(QWidget*parent)2:CustomWindow(parent),3m_nIndex(1)4{5m_pLoadi......
  • Qt 之 QProgressIndicator(等待提示框)
    效果由于录制程序的原因,引起gif效果不清晰,可忽略。源码QProgressIndicator.h1#ifndefQPROGRESSINDICATOR_H2#defineQPROGRESSINDICATOR_H34#include<QWidget>5#include<QColor>67/*!8\classQProgressIndicator9\briefTheQProgres......
  • LLM-文心一言:modbus、opc、can、mqtt协议
    Modbus、OPC、CAN和MQTT都是不同的通信协议,它们在工业自动化、物联网和其他领域有着广泛的应用。以下是对这些协议的简要介绍:Modbus:Modbus是一种串行通信协议,由Modicon公司(现为施耐德电气的一部分)在1979年提出,用于可编程逻辑控制器(PLC)之间的通信。它已经成为工业领域通信协议的......
  • Ubuntu上使用QT creator运行cuda程序 转载的文章
    突发奇想想尝试一下QT界面中使用CUDA加速过的程序,然后查了一下资料,总结一下有以下几点吧1、CUDA配置全部放在.pro文件中2、main.cpp为主函数使用g++编译3、kernel.cu为核函数使用nvcc编译不多说上代码以下为main.cpp代码   #include<QtCore/QCoreApplication>       ......
  • Qt QMovie无法显示gif动画的一种解决方法
    注:本来用这种方法显示gif动画是没有问题的。问题:如下方法,槽函数startGif()如下,点击按钮无法出现gif动画分析:gif动画资源确实是加载进来了,但是在执行movie.start()时,整个资源就已经消失了,所以无法显示动画。要使资源长期存在需要用到c中的修饰符: static。1voidshowGif::st......
  • Qt QMovie播放gif(播放、暂停和继续)
    有些时候我们需要展示一个gif图片,可是用了普通的方法发现不行。啊哦,这就是生活中的理解和程序猿的区别了,程序猿眼中的gif不是图片,而是一个movie。QT提供了QMovie来进行操作。演示示例是通过两个按钮来进行操控,一个负责暂停一个负责进行继续播放。首先要在头文件中声明这个类,一......