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

目录

  • 前言
    • [安装Linux ARM 版 QtCreator](#安装Linux ARM 版 QtCreator)
    • [配置 Qt Creator](#配置 Qt Creator)
    • [第一个麒麟 Qt 应用程序](#第一个麒麟 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

相关推荐
坤昱1 小时前
cfs调度类深入解刨——核心结构细节分析
linux·cfs调度·eevdf调度·linux调度·linux技术
枳实-叶2 小时前
【Linux驱动开发】第12天:Linux设备树核心:树形结构+节点+属性 完整全解
linux·运维·驱动开发
Yeats_Liao2 小时前
物联网接入层技术剖析(三):epoll在JVM中的映射
java·linux·jvm·人工智能·物联网
小贾要学习2 小时前
【Linux】基于自定义TCP协议的日期计算器
linux·网络·c++·网络协议·tcp/ip
2501_920047032 小时前
iptables防火墙
linux·运维·网络安全
带土13 小时前
7. 线程编程(线程概念和创建)
linux
华清远见IT开放实验室3 小时前
硬核根基,智能载体:华清远见嵌入式“硬件+仿真+课程+师资”产教融合与实践教学方案
linux·人工智能·stm32·物联网·嵌入式·虚拟仿真
宠..3 小时前
QComboBox 方法大全
开发语言·qt
Anthony_2313 小时前
Linux 防火墙完全指南:从 iptables 到 firewalld
linux·运维·服务器
月走乂山3 小时前
Linux 服务器安装 CC Switch GUI 工具 + VNC 远程桌面完整教程
linux·运维·服务器