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

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

相关文章:

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

目录 前言安装Linux ARM 版 QtCreator配置 Qt Creator配置构建套件 第一个麒麟 Qt 应用程序小结 前言 在上一篇文章信创ARM架构QT应用开发环境搭建中建议大家使用 Ubuntu X86 系统作为信创 ARM 架构 QT 应用的开发环境,里面使用了交叉编译的方式。这对于自己的 Qt …...

架构面试题汇总:缓存(二)

目录 1. 问题:什么是缓存,以及为什么我们需要缓存?2. 问题:你能解释一下缓存击穿、缓存雪崩和缓存预热是什么吗?3. 问题:如何在Java中实现缓存?4. 问题:你如何决定哪些数据应该被缓存…...

【docker入门】1-

文章目录 参考: Docker – 容器虚拟化平台。 参考: docker入门,这一篇就够了。【零基础入门Docker】Dockerfile中的USER指令以及dockerfile命令详解dockerfile copy命令...

微信小程序-全局配置

个人笔记,仅供参考。 1.entryPagePath 代码: "entryPagePath": "pages/index/index" 具体用法: 2.pages 小程序中新增/减少页面,都需要对 pages 数组进行修改。 代码: "pages": [&…...

【Android】性能优化之内存、网络、布局、卡顿、安装包、启动速度优化

欢迎来到 Android 开发老生常谈的性能优化篇,本文将性能优化划分为内存、网络、布局、卡顿、安装包、启动速度七块,从这七块优化出发,阐述优化的 Application 的方式。 目录 内存优化避免内存泄漏使用内存分析工具优化数据结构和算法数据缓存…...

第3.6章:StarRocks数据导入——DataX StarRocksWriter

一、Datax 1.1 DataX 3.0概述 DataX3.0是一个异构数据源离线同步工具,可以方便的对各种异构数据源进行高效的数据同步。 其github地址为: https://github.com/alibaba/DataX/blob/master/introduction.mdhttps://github.com/alibaba/DataX/blob/mast…...

【非递归版】归并排序算法(2)

目录 MergeSortNonR归并排序 非递归&归并排序VS快速排序 整体思想 图解分析​ 代码实现 时间复杂度 归并排序在硬盘上的应用(外排序) MergeSortNonR归并排序 前面的快速排序的非递归实现,我们借助栈实现。这里我们能否也借助栈去…...

[C++]C++实现本地TCP通讯的示例代码

这篇文章主要为大家详细介绍了C如何利用TCP技术,实现本地ROS1和ROS2的通讯,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下 概要服务端代码 头文件源代码客户端代码 概要 利用TCP技术,实现本地ROS1和ROS2的通讯。 服务端代码 头文件 #include &…...

Sora - 探索AI视频模型的无限可能

文章目录 每日一句正能量前言技术解析应用场景未来展望伦理与创意用户体验与互动后记 每日一句正能量 . 一个人,如果没有经受过投资失败的痛楚,又怎么会看到绝望之后的海阔天空。很多时候,经历了人生中最艰难的事,反而锻造了最坚强…...

【JavaScript 漫游】【022】事件模型

文章简介 本篇文章为【JavaScript 漫游】专栏的第 022 篇文章,对 JavaScript 中事件模型相关的知识点进行了总结。 监听函数 浏览器的事件模型,就是通过监听函数(listener)对事件做出反应。事件发生后,浏览器监听到…...

【加密算法】RSA非对称加密算法简介

目录 前言 工作原理 密钥生成 加密和解密 在Java中使用RSA 生成密钥对 加密和解密数据 加密数据 解密数据 注意事项和最佳实践 结论 前言 RSA(Rivest-Shamir-Adleman)是一种基于数论的非对称加密算法,广泛应用于数字签名、数据加密…...

深入理解 JavaScript 对象原型,解密原型链之谜(上)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

产品经理学习-产品运营《什么是SOP》

目录 什么是SOP 如何执行SOP 执行SOP的重点 什么是SOP SOP就是项目流程操作的说明书 日常工作中的例行操作: 例行操作是指,在每一天,针对每一个用户,在每个项目之中,都必须完成的操作,这些必须完成的操…...

大数据Hadoop生态圈

存储: HDFS(namenode,datanode) 计算:MapReduce(mapreduce,基于磁盘) 便于用sql操作:Hive(核心 metastore,存储这些结构化的数据),同类的还有Impala,hbase等 基于yaml的资源调度 hive &…...

算法简介:查找与算法运行时间

文章目录 1. 二分查找与简单查找1.1 运行时间 2. 旅行商问题 算法是一组完成任务的指令。任何代码片段都可以视为算法。 1. 二分查找与简单查找 二分查找是一种算法,其输入是一个有序的元素列表,如果要查找的元素包含在列表中,二分查找返回…...

零基础C++开发上位机--基于QT5.15的串口助手(三)

本系列教程本着实践的目的,争取每一节课都带大家做一个小项目,让大家多实践多试验,这样才能知道自己学会与否。 接下来我们这节课,主要学习一下QT的串口编程。做一款自己的串口助手,那么这里默认大家都是具备串口通信…...

Facebook的虚拟社交愿景:元宇宙时代的新起点

在当今数字化时代,社交媒体已经成为人们生活中不可或缺的一部分。而随着科技的不断进步和社会的发展,元宇宙已经成为了人们关注的热点话题之一。作为社交媒体的领军企业之一,Facebook也在积极探索虚拟社交的未来,将其视为元宇宙时…...

【深度学习笔记】4_6 模型的GPU计算

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 4.6 GPU计算 到目前为止,我们一直在使用CPU计算。对复杂的神经网络和大规模的数据来说,使用CPU来计算可能不够…...

留学申请过程中如何合理使用AI?大学招生官怎么看?

我们采访过的学生表示,他们在写essay的过程中会使用 ChatGPT,主要用于以下两个方面:第一,生成想法和头脑风暴;第二,拼写和语法检查。 纽约时报的娜塔莎辛格(Natasha Singer)在一篇文…...

vue2与vue3的diff算法有什么区别

在 Vue 中,虚拟 DOM 是一种重要的概念,它通过将真实的 DOM 操作转化为对虚拟 DOM 的操作,从而提高应用的性能。Vue 框架在虚拟 DOM 的更新过程中采用了 Diff 算法,用于比较新旧虚拟节点树,找出需要更新的部分&#xff…...

基于LangChain与Next.js构建私有文档智能问答系统实战指南

1. 项目概述:构建一个能与你的文档对话的智能应用如果你手头有一堆PDF、Word文档或者网页资料,每次想从中找点信息都得靠“CtrlF”大海捞针,那感觉一定很糟。今天分享的这个项目,就是来解决这个痛点的。它是一个基于Next.js、Reac…...

从安装到实战:在快马平台完成python环境搭建后直接进行数据分析项目

从安装到实战:在快马平台完成Python环境搭建后直接进行数据分析项目 最近在学习Python数据分析,发现很多教程只讲安装步骤,却没有后续实战环节。直到在InsCode(快马)平台尝试了"学完即练"的模式,才真正体会到环境搭建和…...

Arduino UNO SPE Shield:工业物联网通信解决方案

1. Arduino UNO SPE Shield项目概述作为一名长期从事工业自动化开发的工程师,当我第一次接触到Arduino UNO SPE Shield时,立刻意识到这款扩展板将为工业物联网(IIoT)项目带来革命性的便利。这款由Arduino官方推出的扩展板,通过Microchip LAN8…...

递归文件搜索工具recursearch:声明式配置与自动化集成实践

1. 项目概述:一个为递归搜索而生的工具如果你经常和文件系统打交道,无论是作为开发者、数据分析师还是系统管理员,肯定遇到过这样的场景:需要在海量的目录和文件中,精准地找到那些符合特定模式的文件,并且还…...

TRIP-Bench:长程交互式AI旅行规划基准测试详解

1. 项目背景与核心价值旅行规划一直是人工智能领域极具挑战性的任务场景。传统AI系统在简单问答和单轮交互中表现优异,但当面对需要多轮对话、复杂决策和长程记忆保持的旅行规划任务时,现有模型的局限性就暴露无遗。TRIP-Bench的出现,正是为了…...

手把手教你CNVD漏洞挖掘 + 资产收集(看完你也可以轻松做到!)网络安全实战教程分享

文章目录前言2、信息收集——github自动化工具——GitDorker3、资产收集4 漏洞猎杀漏洞一:弱口令漏洞漏洞二:垂直越权漏洞5 垂直越权漏洞通杀6 总结前言 挖掘CNVD漏洞有时候其实比一般的edusrc还好挖,但是一般要挖证书的话,还是需…...

如何让珍贵的微信对话永不丢失:WeChatMsg完全指南

如何让珍贵的微信对话永不丢失:WeChatMsg完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg…...

高频脉冲电源厂家选择:放心供应商筛选策略解析

高频脉冲电源厂家选择:放心供应商筛选策略解析“选高频脉冲电源厂家,‘稳定’比‘便宜’更重要——90%的工厂故障源于电源选型不当”。很多工业企业在采购高频脉冲电源时,常因不懂筛选标准踩坑,导致生产效率低、成本高。本文整理了…...

别再让手机‘变脸’坑了你!手把手教你关闭iPhone/安卓随机MAC,搞定Wi-Fi免认证

告别Wi-Fi反复认证!iPhone与安卓关闭随机MAC地址全指南 你是否遇到过这样的场景:在咖啡厅连上Wi-Fi,刚认证完没几分钟,又弹出登录页面要求重新认证?或者在办公室连接企业网络时,明明昨天已经认证过&#xf…...

别再让程序偷偷多开了!QtSingleApplication保姆级配置教程(附跨平台窗口置顶方案)

QtSingleApplication实战:彻底解决多开与窗口激活难题 你是否遇到过用户反复双击程序图标,导致同一应用弹出五六个窗口的尴尬场景?上周团队新发布的Markdown编辑器就因此收到一堆投诉——用户误操作多开导致配置文件互相覆盖。这种看似简单的…...