QGIS开发笔记(二):Windows安装版二次开发环境搭建(上):安装OSGeo4W运行依赖其Qt的基础环境Demo
前言
使用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安装文件

步骤二:安装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自行尝试),也可以修改环境变量,但是笔者为了不影响整台电脑的其他环境,不添加系统环境变量。

QGIS开发笔记(二):Windows安装版二次开发环境搭建(上):安装OSGeo4W运行依赖其Qt的基础环境Demo的更多相关文章
- 【ZZ】Visual C++ 6.0 精简安装版(支持VA、ICC 等等安装)
(2012-04-22 08:10:10) 标签: it 分类: 软件_Software Visual C++ 6.0 精简安装版(支持VA.ICC 等等安装) 2012-04-16 21:07 想找 ...
- MySQL安装 MySQL5.7.10免安装版配置,mysql5.7.10免安装版
MySQL5.7.10免安装版配置,mysql5.7.10免安装版 最新版的 Mysql 不提供图形界面的安装了, 下载下来是一个压缩包的形式, 那么我们如何来使用它呢, 让它为我们工作呢? 环境: ...
- 摘:J2EE开发环境搭建(1)——安装JDK、Tomcat、Eclipse
J2EE开发环境搭建(1)——安装JDK.Tomcat.Eclipse 1:背景 进公司用SSH(Struts,spring和hibernate)开发已经有两个月了,但由于一 直要么只负责表示层的开发 ...
- SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——1.安装系统ubuntu_mate_16.04
摘要 通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整体的认识.接下来就正式进入机器人大脑(嵌入式主板:树莓派3)的开发.本章将从树莓派3的开发环境搭建入手,为后续ros开 ...
- Modbus库开发笔记之十一:关于Modbus协议栈开发的说明(转)
源: Modbus库开发笔记之十一:关于Modbus协议栈开发的说明
- ElasticSearch 集群环境搭建,安装ElasticSearch-head插件,安装错误解决
ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决 说起来甚是惭愧,博主在写这篇文章的时候,还没有系统性的学习一下ES,只知道可以拿来做全文 ...
- HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客
HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客 VPS主机 2014年06月02日 17:20 评论» 文章目录 Debian上安装 Ce ...
- centos 7.3 服务器环境搭建——MySQL 安装和配置
centos 7.3 服务器环境搭建——MySQL 安装和配置服务器信息如下:服务器:阿里云系统 centos 7.3 (阿里云该版本最新系统)mysql版本:5.7.18 (当前时间最新版本)连接服 ...
- Java开发笔记(一百四十二)JavaFX的对话框
JavaFX的对话框主要分为提示对话框和文件对话框两类,其中提示对话框又分作消息对话框.警告对话框.错误对话框.确认对话框四种.这四种对话框都使用Alert控件表达,并通过对话框类型加以区分,例如Al ...
- Java开发笔记(一百一十二)Java11新增的HttpClient
前面介绍了基于HttpURLConnection的网络访问请求,包括GET方式调用接口.POST方式调用接口.下载网络文件.上传本地文件这四种HTTP操作.虽然通过HttpURLConnection能 ...
随机推荐
- C 多维数组、特殊字符和字符串函数详解
C 多维数组 数组,也称为单维数组.这些非常棒,是您在 C 语言编程中会经常使用的东西.然而,如果您想要将数据存储为表格形式,例如带有行和列的表格,则需要熟悉多维数组. 二维数组 二维数组也称为矩阵, ...
- 运动App如何实现端侧后台保活,让运动记录更完整?
你在锻炼健身时,有没有遇到这样的情况?辛辛苦苦锻炼了几小时,却发现App停止了运行,本次运动并没有被记录到App上,从而失去了一个查看完整运动数据的机会? 运动类App是通过手机或者穿戴设备的传感器, ...
- 如何获取华为运动健康服务授权码并调用Rest API访问数据?
华为运动健康服务(HUAWEI Health Kit)允许三方生态应用在获取用户授权后,通过REST API接口访问数据库,读取华为和生态伙伴开放的运动健康数据或写入数据到华为运动健康服务,为用户提供 ...
- redis 简单整理——redis 的键管理[七]
前言 简单整理一下redis的键管理. 正文 单个键管理 键重命名 rename key newkey 为了防止被强行rename,Redis提供了renamenx命令,确保只有newKey 不存在时 ...
- 框架hash/history实现简单原理
1.hahs <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- maven BUILD FAILURE
maven BUILD FAILURE 使用命令进行导包失败,错误为BUILD FAILURE 然后使用mvn help:system看一下是不是maven有问提 然后出现了新的错误No plugin ...
- maven报错:501 HTTPS Required
maven报错:501 HTTPS Required 简单来说,如果报错中出现http://repo1.maven.org/maven2/的字样的话,那么大概率就是Maven仓库的设置里的地址有问题, ...
- Résumé Review 二分方法题解
一道非常好的数学题,不愧是CF的题,跟某些网站上的水题.恶心题没法比~ 题意 这里就要夸一下某谷了,翻译的很好,不像我,在CF上用deepl翻译,不够清晰(←全是废话) 分析 先不考虑 bi ,考虑转 ...
- 宜搭5月更新:跨应用数据读写能力升级,AI组件内测开放
简介:表单.权限管理.AI组件等功能上新啦- 本次,我们带来了表单.权限管理.数据管理.平台管理权限.组件等功能的升级. 表单 支持跨应用数据查询 在使用组件数据联动.关联其他表单数据.关联表单组件 ...
- 2019-10-28-dotnet-代码调试方法
title author date CreateTime categories dotnet 代码调试方法 lindexi 2019-10-28 08:50:11 +0800 2019-6-5 9:4 ...
