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

QT国产化系统软件开发

一、国产操作系统 

1、鸿蒙HarmonyOS NEXT
  1. 核心架构

    • 采用自研鸿蒙内核,完全脱离Linux与AOSP代码,基于分布式架构实现跨设备资源虚拟化整合,支持动态调度多终端硬件能力‌。
    • 通过分布式软总线技术(D-Bus)实现低时延(<5ms)通信,兼容Wi-Fi 6E、蓝牙Mesh及星闪协议‌。
  2. 支持的处理器架构

    • ARM架构‌:原生适配麒麟系列芯片及鲲鹏服务器芯片,构建统一驱动框架‌。
    • x86架构‌:HarmonyOS 4.4双框架版本保留对x86的兼容性,主要用于搭载英特尔/高通芯片的老设备过渡‌。
2、统信UOS
  1. 适配架构范围

    • x86-64(AMD64)‌:兼容主流PC与服务器,支持大内存寻址和复杂任务处理‌。
    • ARM64(AArch64)‌:适配飞腾、鲲鹏等国产芯片,满足低功耗设备需求(如政务终端)‌。
    • 龙芯(LoongArch)‌:自主指令集架构,针对高性能计算和服务器场景优化‌。
  2. 技术特点

    • 提供硬件抽象层(HAL),简化龙芯、申威等不同芯片指令集的开发适配‌。
3、深度Deepin
  • 架构支持
    • 基于Linux内核,兼容x86及ARM架构,覆盖主流PC与嵌入式设备‌。
    • 提供外设驱动支持(如打印机、扫描仪),满足日常办公场景需求‌。
4、华为欧拉(openEuler)
  • 多架构覆盖
    • 支持x86、ARM、RISC-V架构,适用于服务器、边缘计算及云环境‌。
    • 提供异构计算资源池化能力,优化数据中心能效‌。
5、中科方德/中标麒麟
  • 适配架构
    • 主要兼容龙芯(MIPS)、申威(SW64)等国产CPU,应用于国防、能源等关键领域‌。

国产操作系统已形成差异化架构支持:

  • 鸿蒙‌以ARM生态为核心,向x86过渡。
  • 统信UOS‌覆盖x86/ARM/龙芯三大指令集。
  • 深度/欧拉‌基于Linux扩展多架构适配。
  • 方德/麒麟‌聚焦国产CPU安全场景。
    未来需突破指令集统一调度和高性能计算框架瓶颈‌。

二、软件开发环境搭建

  1. 国产系统安装与配置

    • 选择银河麒麟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

    需提前配置交叉编译工具链。

三、项目开发流程

  1. 创建项目

    • 在Qt Creator中新建Qt Widgets Application项目
    • 选择匹配系统架构的Qt版本(如Qt 5.15.2 for UOS)‌
  2. 界面开发

    • 使用Qt Designer设计.ui文件,布局适配国产系统默认分辨率(推荐1920x1080)
    • 添加高DPI支持代码:
      QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);  
      QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);  
      ```‌

‌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);  
    ```‌

四、兼容性适配

  1. 多架构支持
    • .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  
    ```‌

五、部署与测试

  1. 打包发布

    • 生成.deb安装包: 
      dpkg-deb --build package_dir
    • 需包含DEBIAN/control文件定义依赖项‌
    • 制作国产系统专用安装器(UOS需通过官方签名认证)
  2. ‌‌硬件验证

    • 国产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 ‌核心架构‌ 采用自研鸿蒙内核&#xff0c;完全脱离Linux与AOSP代码&#xff0c;基于分布式架构实现跨设备资源虚拟化整合&#xff0c;支持动态调度多终端硬件能力‌。通过分布式软总线技术&#xff08;D-Bus&#xff09;实现低时延…...

Git 使用SSH登陆

一、SSH介绍 SSH连接相比于HTTP连接会简单一点&#xff0c;因为SSH连接通过了私钥与公钥进行身份认证&#xff0c;这样就不需要像HTTP一样&#xff0c;每次clone或者操作仓库都需要输入密码 其中私钥和密钥是需要在自己电脑上生成的&#xff0c;通过命令即可生成一个私钥和一个…...

织梦DedeCMS修改文章【标题、短标题、关键词】长度限制

在后台虽然可以设置标题的长度&#xff0c;但是数据库的字段固定是60个字符&#xff0c;短标题是36字符&#xff0c;关键词30字符&#xff0c;所以这里教大家修改一下织梦DedeCMS修改【标题】【短标题】【关键词】长度限制 一、后台配置 1、进入dede后台管理 -> 系统 ->…...

Powershell WSL部署ubuntu22.04.5子系统

前提条件WSL 安装 wsl 安装参考1wsl 安装csdn参考2wsl 百度网盘离线下载 本地目录安装ubuntu22.04.5 子系统 powershell 管理员打开执行(实现,下载安装ubuntu子系统,用户创建,远程ssh登录设置,防火墙端口开放)子系统IP 查看方法wsl...

umi自带的tailwindcss修改为手动安装

1》为什么改为手动&#xff1f; 主要是为了解决这个报错问题&#xff0c;虽然重新运行也可解决&#xff0c;但是总是要运行2-3次&#xff0c;比较麻烦 2》如何手动 1&#xff0c;先在devDependencies下安装这两个包 pnpm install postcss8.5.1 -D "autoprefixer"…...

Android 13 Launcher3最近任务列表“全部清除“按钮位置优化实战

一、问题背景与实现难点 在Android 13横屏设备开发中&#xff0c;系统默认将最近任务列表的"全部清除"按钮布局在屏幕左侧&#xff0c;这与用户习惯的底部布局存在明显差异。相较于Android 8.1时代SystemUI模块的实现&#xff0c;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权限&#xff08;可选&#xff09; mkdir -p ~/.kube sudo cp /etc/r…...

SQL Server数据库简介及应用

SQL Server以高性能、高可用性著称&#xff0c;支持Windows/Linux跨平台部署&#xff0c;满足混合云需求。其内存优化表、列存储索引加速数据处理&#xff0c;AlwaysOn可用性组保障业务连续性。安全体系集成身份验证与加密&#xff0c;符合企业合规要求。与Azure无缝集成&#…...

麒麟V10 arm cpu aarch64 下编译 RocketMQ-Client-CPP 2.2.0

国产自主可控服务器需要访问RocketMQ消息队列&#xff0c;最新的CSDK是2020年发布的 rocketmq-client-cpp-2.2.0 这个版本支持TLS模式。 用默认的版本安装遇到一些问题&#xff0c;记录一下。 下载Releases apache/rocketmq-client-cpp GitHubhttps://github.com/apache/roc…...

【商城实战(49)】解锁小程序端适配与优化,让商城飞起来

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

使用码云搭建CocoaPods远程私有库

一、创建远程私有索引库 用来存放私有框架的详细描述信息.podspec文件 1. 创建私有库 假设码云上创建的私有库为repo-spec 2. 查看本地已存在的索引库 pod repo list 3. 将远程私有索引库添加到本地 pod repo add [https://gitee.com/jingluoguo/repo-spec.git](https://gi…...

深度学习有哪些算法?

深度学习包含多种算法和模型&#xff0c;广泛应用于图像处理、自然语言处理、语音识别等领域。以下是主要分类及代表性算法&#xff1a; 一、基础神经网络 多层感知机&#xff08;MLP&#xff09; 最简单的深度学习模型&#xff0c;由多个全连接层组成&#xff0c;用于分类和回…...

专访LayaAir引擎最有价值专家-施杨

在 LayaAir 引擎的资源商店中&#xff0c;许多开发者都会注意到一个熟悉的名字——“射手座”。他不仅贡献了大量高质量的 Shader 资源&#xff0c;让一些开发者通过他的作品了解到 LayaAir 引擎在 3D 视觉效果上的更多可能&#xff0c;也让大家能够以低成本直接学习并应用这些…...

AJAX的理解和原理还有概念

你想问的可能是 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09; &#xff0c;它并不是一门新的编程语言&#xff0c;而是一种在无需重新加载整个网页的情况下&#xff0c;能够与服务器进行异步通信并更新部分网页的技术。以下从基本概念、原理、优点、使用场景等…...

自然语言处理:文本聚类

介绍 大家好&#xff0c;博主又来和大家分享自然语言处理领域的知识了。今天给大家分享的内容是自然语言处理中的文本聚类。 文本聚类在自然语言处理领域占据着重要地位&#xff0c;它能将大量无序的文本按照内容的相似性自动划分成不同的类别&#xff0c;极大地提高了文本处…...

RabbitMQ 集群降配

这里写自定义目录标题 摘要检查状态1. 检查 RabbitMQ 服务状态2. 检查 RabbitMQ 端口监听3. 检查 RabbitMQ 管理插件是否启用4. 检查开机自启状态5. 确认集群高可用性6. 检查使用该集群的服务是否做了断开重连 实操1. 负载均衡配置2. 逐个节点降配&#xff08;滚动操作&#xf…...

uniapp工程中解析markdown文件

在uniapp中如何导入markdown文件&#xff0c;同时在页面中解析成html&#xff0c;请参考以下配置&#xff1a; 1. 安装以下3个依赖包 npm install marked highlight.js vite-plugin-markdown 2. 创建vite.config.js配置文件 // vite.config.js import { defineConfig } fro…...

数据结构:二叉树(一)·(重点)

前言 什么树&#xff1f;what&#xff1f; 树的概念与结构 概念&#xff1a; 树是⼀种⾮线性的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09; 个有限结点组成⼀个具有层次关系的集合。 结构&#xff1a; 有⼀个特殊的结点&#xff0c;称为根结点&#…...

DevEco Studio的使用

目录 1.创建ArkTS工程 2.ArkTS工程目录结构&#xff08;Stage模型&#xff09; 构建第一个页面 构建第二个页面 实现页面间的跳转 1.创建ArkTS工程 若首次打开DevEco Studio&#xff0c;请点击Create Project创建工程。如果已经打开了一个工程&#xff0c;请在菜单栏选择…...

十七、实战开发 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; 授信表&#xff1a;credit 字段包含user_id(用户id)&#xff0c;credit_id(授信id)&#xff0c;credit_time(授信时间yyyy-MM-dd HH:mm:ss)&#x…...

内存模型以及分区,需要详细到每个区放什么。

1. 内存模型以及分区&#xff0c;需要详细到每个区放什么。 JVM 分为堆区和栈区&#xff0c;还有方法区&#xff0c;初始化的对象放在堆里面&#xff0c;引用放在栈里面&#xff0c; class 类信息常量池&#xff08;static 常量和 static 变量&#xff09;等放在方法区new: …...

python strip/rstrip/lstrip详细讲解(涵盖许多例子、作用以及复杂行为处理)

python strip/rstrip/lstrip详细讲解: 在Python中,strip、lstrip、rstrip 是用于字符串处理的常用方法,主要功能是去除字符串首尾的指定字符。它们的区别如下: 1. strip([chars]) 作用 :删除字符串开头和结尾 处所有属于 chars 的字符,直到遇到不属于 chars 的字符为止…...

Spring Boot集成PageHelper:轻松实现数据库分页功能

Spring Boot集成PageHelper&#xff1a;轻松实现数据库分页功能 1. 为什么需要分页&#xff1f; 分页是处理大数据量查询的核心技术&#xff0c;其重要性体现在&#xff1a; 性能优化&#xff1a;避免单次查询返回过多数据导致内存溢出或响应延迟。用户体验&#xff1a;前端展…...

OpenGL ES 入门指南:从基础到实战

引言&#xff1a;为什么需要 OpenGL ES&#xff1f; 在当今的嵌入式设备&#xff08;如智能手机、汽车仪表盘、智能家居中控屏&#xff09;中&#xff0c;流畅的图形渲染能力是用户体验的核心。OpenGL ES&#xff08;OpenGL for Embedded Systems&#xff09; 作为行业标准&am…...

docker安装milvus向量数据库Attu可视化界面

Docker 部署 Milvus 及 Attu 可视化工具完整指南 一、环境准备 安装 Docker 及 Docker Compose Docker 版本需 ≥20.10.12Docker Compose 版本需 ≥2.20.0&#xff08;推荐 V2&#xff09; 验证 Docker 环境 docker --version && docker-compose --version若出现&…...

Elasticsearch 索引

一、简介 在 Elasticsearch 中&#xff0c;索引&#xff08;Index&#xff09;是存储相关文档的地方&#xff0c;类似于关系数据库中的数据库。索引是 Elasticsearch 中最重要的概念之一&#xff0c;用于组织和存储数据。 二、索引的基本概念 索引&#xff08;Index&#xf…...

ArcGIS10. 8简介与安装,附下载地址

目录 ArcGIS10.8 1. 概述 2. 组成与功能 3. 10.8 特性 下载链接 安装步骤 1. 安装准备 2. 具体步骤 3.补丁 其他版本安装 ArcGIS10.8 1. 概述 ArcGIS 10.8 是由美国 Esri 公司精心研发的一款功能强大的地理信息系统&#xff08;GIS&#xff09;平台。其核心功能在于…...

Idea中使用Git插件_合并当前分支到master分支_冲突解决_很简单---Git工作笔记005

由于之前用svn习惯了,用的git少,其实在idea中使用git,解决冲突,合并分支,非常的简单,一起来看一下吧. 一定要注意操作之前,一定要确保自己的分支代码,都已经commit提交了,并且push到远程了. 不要丢东西. 可以看到首先,在idea的左下角有个 git,点开以后 可以看到有显示的分支…...

Docker简易使用说明

Docker使用说明 文章目录 Docker使用说明一. 安装二. 测试三. 镜像加速 一. 安装 安装其实没什么可说的&#xff0c;但凡有显示界面的OS&#xff0c;如windows/Mac&#xff0c;直接上官方网站下载安装即可 二. 测试 若安装好docker后&#xff0c;应当先检测docker的网络通信…...