QT国产化系统软件开发
一、国产操作系统
1、鸿蒙HarmonyOS NEXT
-
核心架构
- 采用自研鸿蒙内核,完全脱离Linux与AOSP代码,基于分布式架构实现跨设备资源虚拟化整合,支持动态调度多终端硬件能力。
- 通过分布式软总线技术(D-Bus)实现低时延(<5ms)通信,兼容Wi-Fi 6E、蓝牙Mesh及星闪协议。
-
支持的处理器架构
- ARM架构:原生适配麒麟系列芯片及鲲鹏服务器芯片,构建统一驱动框架。
- x86架构:HarmonyOS 4.4双框架版本保留对x86的兼容性,主要用于搭载英特尔/高通芯片的老设备过渡。
2、统信UOS
-
适配架构范围
- x86-64(AMD64):兼容主流PC与服务器,支持大内存寻址和复杂任务处理。
- ARM64(AArch64):适配飞腾、鲲鹏等国产芯片,满足低功耗设备需求(如政务终端)。
- 龙芯(LoongArch):自主指令集架构,针对高性能计算和服务器场景优化。
-
技术特点
- 提供硬件抽象层(HAL),简化龙芯、申威等不同芯片指令集的开发适配。
3、深度Deepin
- 架构支持
- 基于Linux内核,兼容x86及ARM架构,覆盖主流PC与嵌入式设备。
- 提供外设驱动支持(如打印机、扫描仪),满足日常办公场景需求。
4、华为欧拉(openEuler)
- 多架构覆盖
- 支持x86、ARM、RISC-V架构,适用于服务器、边缘计算及云环境。
- 提供异构计算资源池化能力,优化数据中心能效。
5、中科方德/中标麒麟
- 适配架构
- 主要兼容龙芯(MIPS)、申威(SW64)等国产CPU,应用于国防、能源等关键领域。
国产操作系统已形成差异化架构支持:
- 鸿蒙以ARM生态为核心,向x86过渡。
- 统信UOS覆盖x86/ARM/龙芯三大指令集。
- 深度/欧拉基于Linux扩展多架构适配。
- 方德/麒麟聚焦国产CPU安全场景。
未来需突破指令集统一调度和高性能计算框架瓶颈。
二、软件开发环境搭建
-
国产系统安装与配置
- 选择银河麒麟V10/统信UOS 20等主流系统,完成系统镜像刻录与安装(注意区分amd/arm/mips架构)
- 配置系统软件源(银河麒麟需手动修改
/etc/apt/sources.list,UOS默认使用官方认证源) - 执行系统更新命令:
sudo apt update && sudo apt upgrade -y
2. 安装基础工具链
- 安装编译工具:
sudo apt install gcc g++ cmake make mesa-utils libgl1-mesa-dev(解决
libGL等图形库依赖问题) -
安装IDE支持包:
sudo apt install qtcreator qt5-default
3. Qt框架部署
- 离线安装(amd架构):
下载Qt官方.run安装包,执行:chmod +x qt-installer.run ./qt-installer.run选择
gcc_64版本并配置独立安装路径。 -
源码编译(arm/mips架构):
./configure -prefix /opt/Qt5.15 -opensource -confirm-license \ -xplatform linux-arm-gnueabi-g++ make -j4 && sudo make install需提前配置交叉编译工具链。
三、项目开发流程
-
创建项目
- 在Qt Creator中新建
Qt Widgets Application项目 - 选择匹配系统架构的Qt版本(如Qt 5.15.2 for UOS)
- 在Qt Creator中新建
-
界面开发
- 使用Qt Designer设计
.ui文件,布局适配国产系统默认分辨率(推荐1920x1080) - 添加高DPI支持代码:
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); ```
- 使用Qt Designer设计
3. 功能开发
- 通过信号槽机制实现业务逻辑:
connect(ui->btnSubmit, &QPushButton::clicked, this, &MainWindow::handleSubmit); -
集成国产硬件驱动(如全志T113-i开发板):
#include <linux/can.h> int can_fd = socket(PF_CAN, SOCK_RAW, CAN_RAW); ```
四、兼容性适配
- 多架构支持
- 在
.pro文件中声明兼容架构:QT_ARCH = arm CONFIG += arm-linux-gnueabihf -
使用
linuxdeployqt打包时指定平台:linuxdeployqt appname -bundle-non-qt-libs -qmake=/opt/Qt5.15/bin/qmake ```
- 在
2. 依赖管理
- 检查动态库:
ldd ./appname | grep "not found" - 修复路径问题:
patchelf --set-rpath '$ORIGIN/lib' ./appname ```
五、部署与测试
-
打包发布
- 生成
.deb安装包:dpkg-deb --build package_dir - 需包含
DEBIAN/control文件定义依赖项 - 制作国产系统专用安装器(UOS需通过官方签名认证)
- 生成
-
硬件验证
• 国产CPU负载率(top命令监控) • 外设驱动兼容性(串口/USB/CAN总线) • 4K分辨率下界面渲染稳定性 ```
六、常见问题处理
| 问题现象 | 解决方案 |
|---|---|
编译报错cannot find -lGL | 执行sudo apt install libgl1-mesa-dev并验证/usr/lib/x86_64-linux-gnu/libGL.so存在 |
| 界面模糊 | 设置环境变量export QT_SCALE_FACTOR=1.25 |
| 打包后无法运行 | 使用chrpath -d ./appname清除无效库路径 |
注意: 不同国产系统需在麒麟/UOS官方开发者平台获取SDK适配包,工业场景建议优先选用Qt 5.15 LTS版本
相关文章:
QT国产化系统软件开发
一、国产操作系统 1、鸿蒙HarmonyOS NEXT 核心架构 采用自研鸿蒙内核,完全脱离Linux与AOSP代码,基于分布式架构实现跨设备资源虚拟化整合,支持动态调度多终端硬件能力。通过分布式软总线技术(D-Bus)实现低时延…...
Git 使用SSH登陆
一、SSH介绍 SSH连接相比于HTTP连接会简单一点,因为SSH连接通过了私钥与公钥进行身份认证,这样就不需要像HTTP一样,每次clone或者操作仓库都需要输入密码 其中私钥和密钥是需要在自己电脑上生成的,通过命令即可生成一个私钥和一个…...
织梦DedeCMS修改文章【标题、短标题、关键词】长度限制
在后台虽然可以设置标题的长度,但是数据库的字段固定是60个字符,短标题是36字符,关键词30字符,所以这里教大家修改一下织梦DedeCMS修改【标题】【短标题】【关键词】长度限制 一、后台配置 1、进入dede后台管理 -> 系统 ->…...
Powershell WSL部署ubuntu22.04.5子系统
前提条件WSL 安装 wsl 安装参考1wsl 安装csdn参考2wsl 百度网盘离线下载 本地目录安装ubuntu22.04.5 子系统 powershell 管理员打开执行(实现,下载安装ubuntu子系统,用户创建,远程ssh登录设置,防火墙端口开放)子系统IP 查看方法wsl...
umi自带的tailwindcss修改为手动安装
1》为什么改为手动? 主要是为了解决这个报错问题,虽然重新运行也可解决,但是总是要运行2-3次,比较麻烦 2》如何手动 1,先在devDependencies下安装这两个包 pnpm install postcss8.5.1 -D "autoprefixer"…...
Android 13 Launcher3最近任务列表“全部清除“按钮位置优化实战
一、问题背景与实现难点 在Android 13横屏设备开发中,系统默认将最近任务列表的"全部清除"按钮布局在屏幕左侧,这与用户习惯的底部布局存在明显差异。相较于Android 8.1时代SystemUI模块的实现,Android 13将相关逻辑迁移至Launche…...
基于k3s部署Nginx、MySQL、SpringBoot和Redis的详细教程
1. 安装k3s集群 1.1 单节点快速部署 # 使用root或sudo权限执行 curl -sfL https://get.k3s.io | sh -# 验证安装 sudo kubectl get nodes # 输出应为Ready状态 sudo systemctl status k3s1.2 配置kubectl权限(可选) mkdir -p ~/.kube sudo cp /etc/r…...
SQL Server数据库简介及应用
SQL Server以高性能、高可用性著称,支持Windows/Linux跨平台部署,满足混合云需求。其内存优化表、列存储索引加速数据处理,AlwaysOn可用性组保障业务连续性。安全体系集成身份验证与加密,符合企业合规要求。与Azure无缝集成&#…...
麒麟V10 arm cpu aarch64 下编译 RocketMQ-Client-CPP 2.2.0
国产自主可控服务器需要访问RocketMQ消息队列,最新的CSDK是2020年发布的 rocketmq-client-cpp-2.2.0 这个版本支持TLS模式。 用默认的版本安装遇到一些问题,记录一下。 下载Releases apache/rocketmq-client-cpp GitHubhttps://github.com/apache/roc…...
【商城实战(49)】解锁小程序端适配与优化,让商城飞起来
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配…...
使用码云搭建CocoaPods远程私有库
一、创建远程私有索引库 用来存放私有框架的详细描述信息.podspec文件 1. 创建私有库 假设码云上创建的私有库为repo-spec 2. 查看本地已存在的索引库 pod repo list 3. 将远程私有索引库添加到本地 pod repo add [https://gitee.com/jingluoguo/repo-spec.git](https://gi…...
深度学习有哪些算法?
深度学习包含多种算法和模型,广泛应用于图像处理、自然语言处理、语音识别等领域。以下是主要分类及代表性算法: 一、基础神经网络 多层感知机(MLP) 最简单的深度学习模型,由多个全连接层组成,用于分类和回…...
专访LayaAir引擎最有价值专家-施杨
在 LayaAir 引擎的资源商店中,许多开发者都会注意到一个熟悉的名字——“射手座”。他不仅贡献了大量高质量的 Shader 资源,让一些开发者通过他的作品了解到 LayaAir 引擎在 3D 视觉效果上的更多可能,也让大家能够以低成本直接学习并应用这些…...
AJAX的理解和原理还有概念
你想问的可能是 AJAX(Asynchronous JavaScript and XML) ,它并不是一门新的编程语言,而是一种在无需重新加载整个网页的情况下,能够与服务器进行异步通信并更新部分网页的技术。以下从基本概念、原理、优点、使用场景等…...
自然语言处理:文本聚类
介绍 大家好,博主又来和大家分享自然语言处理领域的知识了。今天给大家分享的内容是自然语言处理中的文本聚类。 文本聚类在自然语言处理领域占据着重要地位,它能将大量无序的文本按照内容的相似性自动划分成不同的类别,极大地提高了文本处…...
RabbitMQ 集群降配
这里写自定义目录标题 摘要检查状态1. 检查 RabbitMQ 服务状态2. 检查 RabbitMQ 端口监听3. 检查 RabbitMQ 管理插件是否启用4. 检查开机自启状态5. 确认集群高可用性6. 检查使用该集群的服务是否做了断开重连 实操1. 负载均衡配置2. 逐个节点降配(滚动操作…...
uniapp工程中解析markdown文件
在uniapp中如何导入markdown文件,同时在页面中解析成html,请参考以下配置: 1. 安装以下3个依赖包 npm install marked highlight.js vite-plugin-markdown 2. 创建vite.config.js配置文件 // vite.config.js import { defineConfig } fro…...
数据结构:二叉树(一)·(重点)
前言 什么树?what? 树的概念与结构 概念: 树是⼀种⾮线性的数据结构,它是由 n ( n>0 ) 个有限结点组成⼀个具有层次关系的集合。 结构: 有⼀个特殊的结点,称为根结点&#…...
DevEco Studio的使用
目录 1.创建ArkTS工程 2.ArkTS工程目录结构(Stage模型) 构建第一个页面 构建第二个页面 实现页面间的跳转 1.创建ArkTS工程 若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择…...
十七、实战开发 uni-app x 项目(仿京东)- 后端指南
前面我们已经用uniappx进行了前端实战学习 一、实战 开发uni-app x项目(仿京东)-规划-CSDN博客 二、实战 开发uni-app x项目(仿京东)-项目搭建-CSDN博客 三、实战开发 uni-app x 项目(仿京东)- 技术选型-CSDN博客 四、实战开发 uni-app x 项目(仿京东)- 页面设计-C…...
数据开发岗笔试题>>sql(hive) ,excel [2025]
sql SELECT user_id, AVG(loan_amount) AS avg_loan_amount FROM loan GROUP BY user_id HAVING AVG(loan_amount) > 20000; 授信表:credit 字段包含user_id(用户id),credit_id(授信id),credit_time(授信时间yyyy-MM-dd HH:mm:ss)&#x…...
内存模型以及分区,需要详细到每个区放什么。
1. 内存模型以及分区,需要详细到每个区放什么。 JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面, class 类信息常量池(static 常量和 static 变量)等放在方法区new: …...
python strip/rstrip/lstrip详细讲解(涵盖许多例子、作用以及复杂行为处理)
python strip/rstrip/lstrip详细讲解: 在Python中,strip、lstrip、rstrip 是用于字符串处理的常用方法,主要功能是去除字符串首尾的指定字符。它们的区别如下: 1. strip([chars]) 作用 :删除字符串开头和结尾 处所有属于 chars 的字符,直到遇到不属于 chars 的字符为止…...
Spring Boot集成PageHelper:轻松实现数据库分页功能
Spring Boot集成PageHelper:轻松实现数据库分页功能 1. 为什么需要分页? 分页是处理大数据量查询的核心技术,其重要性体现在: 性能优化:避免单次查询返回过多数据导致内存溢出或响应延迟。用户体验:前端展…...
OpenGL ES 入门指南:从基础到实战
引言:为什么需要 OpenGL ES? 在当今的嵌入式设备(如智能手机、汽车仪表盘、智能家居中控屏)中,流畅的图形渲染能力是用户体验的核心。OpenGL ES(OpenGL for Embedded Systems) 作为行业标准&am…...
docker安装milvus向量数据库Attu可视化界面
Docker 部署 Milvus 及 Attu 可视化工具完整指南 一、环境准备 安装 Docker 及 Docker Compose Docker 版本需 ≥20.10.12Docker Compose 版本需 ≥2.20.0(推荐 V2) 验证 Docker 环境 docker --version && docker-compose --version若出现&…...
Elasticsearch 索引
一、简介 在 Elasticsearch 中,索引(Index)是存储相关文档的地方,类似于关系数据库中的数据库。索引是 Elasticsearch 中最重要的概念之一,用于组织和存储数据。 二、索引的基本概念 索引(Index…...
ArcGIS10. 8简介与安装,附下载地址
目录 ArcGIS10.8 1. 概述 2. 组成与功能 3. 10.8 特性 下载链接 安装步骤 1. 安装准备 2. 具体步骤 3.补丁 其他版本安装 ArcGIS10.8 1. 概述 ArcGIS 10.8 是由美国 Esri 公司精心研发的一款功能强大的地理信息系统(GIS)平台。其核心功能在于…...
Idea中使用Git插件_合并当前分支到master分支_冲突解决_很简单---Git工作笔记005
由于之前用svn习惯了,用的git少,其实在idea中使用git,解决冲突,合并分支,非常的简单,一起来看一下吧. 一定要注意操作之前,一定要确保自己的分支代码,都已经commit提交了,并且push到远程了. 不要丢东西. 可以看到首先,在idea的左下角有个 git,点开以后 可以看到有显示的分支…...
Docker简易使用说明
Docker使用说明 文章目录 Docker使用说明一. 安装二. 测试三. 镜像加速 一. 安装 安装其实没什么可说的,但凡有显示界面的OS,如windows/Mac,直接上官方网站下载安装即可 二. 测试 若安装好docker后,应当先检测docker的网络通信…...
