ARM 版银河麒麟桌面系统下 Qt 开发环境搭建指南

目录

  • 前言
    • 安装Linux ARM 版 QtCreator
    • 配置 Qt Creator
      • 配置构建套件
    • 第一个麒麟 Qt 应用程序
    • 小结

前言

在上一篇文章信创ARM架构QT应用开发环境搭建中建议大家使用 Ubuntu X86 系统作为信创 ARM 架构 QT 应用的开发环境,里面使用了交叉编译的方式。这对于自己的 Qt 应用程序来说没有什么问题,但是对于一些第三方库或者一些第三方 Qt 组件,可能库的作者也没有考虑到交叉编译。这样编译第三方库的 ARM 版本会比较困难,这个时候,可能直接使用 ARM 环境来编译会更加简单。

目前 ARM 桌面 CPU 性能并不差,如果不是特别大型的应用程序,编译代码其实也没有什么问题。我手头的是一台华为的笔记本,CPU是华为鲲鹏 990,8核 (2 x Cortex-A76 2.86 GHz + 2 x Cortex-A76 2.09 GHz + 4 x Cortex-A55 1.86 GHz),内存8G(这个内存有点小,要是16G就好了),系统则是银河麒麟 V10 SP1 系统。
在这里插入图片描述
下面就介绍一下 ARM 版银河麒麟桌面系统下的 Qt 开发环境搭建过程。

安装Linux ARM 版 QtCreator

Kylin V10 SP1软件源中提供的Qt框架版本为 5.15.2 ,这是一个 LTS 版本,也是我们在项目中使用的版本。qmake对应版本为 3.1,Qt Creator对应版本为 4.14.1 。

安装过程非常简单,直接使用系统的包管理器就可以安装。

$ sudo apt update
$ sudo apt install build-essential git gdb cmake
$ sudo apt install qt5-default qtcreator

其中 qt5-default 包中主要包括:

  • qtbase: Qt 基础模块的集合,比如 widgets, Gui 等;
  • qmake: qmake 是 Qt 项目的构建工具,通过 qmake 将 .pro 文件生成 make 文件,进而完成项目的编译;

qtcreator 包中主要包括:

  • qtcreator: Qt官方的 IDE;
  • qt助手: Qt 所有模块的说明文档;
  • qt linguist: Qt 进行文字内容国际化的可视化工具,帮助开发者对程序中需要翻译的文字内容进行对应语言的翻译;
  • qt设计器: Qt 对 UI 文件进行布置的可视化工具。

build-essential包中主要包括:

  • libc6-dev
  • gcc
  • g++
  • make
  • dpkg-dev

gdb 包为 Linux 下的调试工具。

安装完成后,可以在开始菜单项中找到它。启动 Qt Creator,查看一下版本信息:
在这里插入图片描述

配置 Qt Creator

安装完 Qt Creator,使用 Qt Creator 工程向导新建一个工程,走到最后一步却发现如下问题:
在这里插入图片描述
这是因为 Qt Creator 没有自动识别到 Qt 库的安装,这个时候需要手动添加。

配置构建套件

配置构建套件,就是指定编译器、调试器、qmake工具等。

在上图中点击 options,或者在 Qt Creator 主界面,点击 工具 | 选项,进行构建套件的配置。

先配置 Qt Version。点击 Qt Version 标签页,再点击 添加… 按钮。
在这里插入图片描述
在打开的对话框中选择 /usr/bin/ 目录下的 qmake:
在这里插入图片描述
这个 qmake 实际上链接到 /usr/lib/qt5/bin/qmake,所以实际上显示的是:
在这里插入图片描述
还可以配置 CMake 构建:
在这里插入图片描述
接下来可以修改默认的桌面 Kit
在这里插入图片描述
如果想增加一个自定义的 Kit,也可以点击新增,配置项可以自行调整。
在这里插入图片描述
点击确定,即可完成 Kits 的配置。

第一个麒麟 Qt 应用程序

利用工程向导,建立一个 Qt widget 程序,到了选择 Kits 那一步,可以看到有 桌面 Kit 可以选择:
在这里插入图片描述
工程建立后,点击 Qt Creator 的 Run,我们的第一个麒麟应用程序就运行起来了。
在这里插入图片描述

小结

本文介绍了在ARM 版麒麟系统下安装和配置 Qt 开发环境,并使用 Qt Creator 写了第一个 麒麟系统 Qt 应用程序。

本系列教程示例源码请参考: https://e.coding.net/mogoweb/qt-in-action/qt-in-action.git

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 + vite + ts 中使用less文件全局变量

文章目录 安装依赖新建css变量文件全局引入css变量文件使用css变量 一、安装依赖 npm install less less-loader --save-dev 二、新建CSS变量文件 (1) :在根目录下的src文件中 src-> asset -> css ->glibal.less // glibal.less :root{--public_background_font_Col…

Dubbo知识点大全

“ 分布式应用场景有高并发,高可扩展和高性能的要求。还涉及到,序列化/反序列化,网络,多线程以及设计模式的问题。幸好 Dubbo 框架将上述知识进行了封装,让程序员能够把注意力放到业务上。 概念和架构 Provider:暴露服务的服务提供方Consumer:调用远程服务消费方Regist…

CUDA编程 - 用向量化访存优化 elementwise 核函数 - 学习记录

Cuda elementwise 一、简介1.1、ElementWise1.2、 float4 - 向量化访存 二、实践2.1、如何使用向量化访存2.2、Cuda elementwise - Add2.3、Cuda elementwise - Sigmoid2.3.1、简单的 Sigmoid 函数2.3.2、ElementWise Sigmoid float4(向量化访存) 2.4、C…

商家入驻平台怎么让资金自动分配给商家

最近很多上线了多商户电商系统的朋友咨询,我们平台的用户支付后,钱进入了我们的对公账户,怎样让钱在走完流程后,自动进入商家的账户呢?今天商淘云为您分享商户入驻平台自动分配给商家资金的三种方法。 首先是平台应建立…

Docker基础(一)

文章目录 1. 基础概念2. 安装docker3. docker常用命令3.1 帮助命令3.2 镜像命令3.3 容器命令3.4 其他命令 4. 使用案例 1. 基础概念 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官…

node14下运行项目报错:regeneratorRuntime is not defined

regeneratorRuntime is not defined,这是由于配置babel出错问题,由于使用了es7语法如async/await而当前babel版本过低 解决: npm install -D babel-plugin-transform-runtime babel-runtime 安装完成后在.babelrc文件下配置: &qu…

远程连接Redis

以连接阿里云上的Redis为例 1. 在阿里云安全组中开放端口 2.修改Redis启动时所用的配置文件(redis.conf) 2.1 修改ip地址 如图:将默认的本地ip bind 127.0.0.1地址改为bind 0.0.0.0 2.2 将保护模式关闭 将默认的 supervised yes 改为 n…

Transformer视频理解学习的笔记

今天复习了Transformer,ViT, 学了SwinTransformer, 还有观看了B站视频理解沐神系列串讲视频上(24.2.26未看完,明天接着看) 这里面更多论文见:https://github.com/mli/paper-reading/ B站视频理解沐神系列串讲视频下(明天接着看&a…

认证模式~

认证方式 基于Cookie和Session的认证方式 基于Cookie和Session的认证是传统的Web应用认证机制。它依赖于HTTP协议无状态的特性,在客户端(浏览器)和服务器之间保持用户的状态。 工作原理 用户登录:用户通过输入用户名和密码来登…

嵌入式C语言(三)

typeof() 使用typeof可以获取一个变量或表达式的类型。 typeof的参数有两种形式:表达式或类型。 int i;typeof(i) j 20; --> int j 20;typeof(int *) a; -->int *a; int f(); -->typeof(f()) k;--? int k我们可以看出通过typeof获取一个变量的…

合并spark structured streaming处理流式数据产生的小文件

备注: By 远方时光原创,可转载,不能复制到其他平台 背景:做流批一体,湖仓一体的大数据架构,常见的做法就是 数据源->spark Streaming->ODS(数据湖)->spark streaming->…

Vue 实现页面导出A4标准大小的PDF文件,以及处理图片跨域不能正常展示的问题等

效果预览: 代码流程:首先在utils文件夹下创建htmlToPdf的js工具文件,然后在main.js中注册引用 htmlToPdf.js // 导出页面为PDF格式 import html2Canvas from html2canvas import JsPDF from jspdfexport default {install(Vue, options) {V…

hcia datacom课程学习(1):通信基础

1.总体框架 上图为发送方通过互联网传递信息给接收方的过程。 家用路由器会直接集成上图中的四层(vlan,DHCP,静态路由,NAT,PPPoE)。 2.网络性能指标 (1)带宽 单位时间内传输的数…

解析Hadoop三大核心组件:HDFS、MapReduce和YARN

目录 HadoopHadoop的优势 Hadoop的组成HDFS架构设计Yarn架构设计MapReduce架构设计 总结 在大数据时代,Hadoop作为一种开源的分布式计算框架,已经成为处理大规模数据的首选工具。它采用了分布式存储和计算的方式,能够高效地处理海量数据。Had…

pod调度策略 标签管理 资源配额与限额 全局资源配额与限额策略,

打分也是基于可调度节点进行打分资源情况. 指定多个节点,会进行覆盖其之前节点名称 --- kind: Pod apiVersion: v1 metadata:name: myhttp spec:nodeName: node-0001 # 基于节点名称进行调度containers:- name: apacheimage: myos:httpd 基于节点名称的调度策略 标签与调…

数据可视化--了解数据可视化和Excel数据可视化

目录 1.1科学可视化: 可视化是模式、关系、异常 1.2三基色原理: 三基色:红色、绿色和蓝色 1.3Excel数据可视化 1.3.1 excel数据分析-13个图表可视化技巧 1.3.2 excel数据分析-28个常用可视化图表(video) 1.3.3Excel可视化…

康复训练day2——2024牛客寒假集训营6

一道很好的构造题,受益匪浅。 链接:F-命运的抉择_2024牛客寒假算法基础集训营6 (nowcoder.com)​​​​​​ 题意: 题解 (并查集 思维): 首先将存在1的情况特判掉,我们的数组的元素都是> 2的…

2024-02-26(Spark,kafka)

1.Spark SQL是Spark的一个模块,用于处理海量结构化数据 限定:结构化数据处理 RDD的数据开发中,结构化,非结构化,半结构化数据都能处理。 2.为什么要学习SparkSQL SparkSQL是非常成熟的海量结构化数据处理框架。 学…

在having、select子句中使用子查询

目录 在having子句中使用子查询 统计出部门平均工资高于公司平均工资的部门编号、平均工资、部门人数 在select子句中使用子查询 查询每个员工的编号、姓名、职位、部门名称 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 在havin…

销售线索获取 如何查找更多的销售线索平台

在进行销售工作时,寻找潜在客户和销售线索是非常重要的。只有及时地发现客户的需求和问题,才能更好地进行销售和提供服务。然而,在如今的市场环境中,客户的信息被广泛地分散在各个渠道和媒介上,如果仅靠人工搜索和整理…