信创系统软件开发环境搭建(QT篇)

信创系统软件开发环境搭建(QT篇)

    • 前言
    • Ubuntu 版本选择
    • QT 版本选择
    • Ubuntu 开发相关软件安装
    • 问题

前言

信创系统,包括统信 UOS 和麒麟系统都是基于 Linux 系统开发,所以要开发信创系统软件,优选 Linux 系统。而 Linux 系统选择相当多,各种版本眼花缭乱。当然,很多人可能会想,既然是开发统信 UOS 或麒麟系统上的软件,那干脆直接使用 UOS 或麒麟系统。

关于这个问题,我的建议是,虽然麒麟系统基于 Ubuntu 开发(这个说法不一定正确,我只知道早期的优麒麟是基于 Ubuntu,其它版本麒麟系统,就不太清楚),但开发系统还是首选 Ubuntu。

为什么这么说呢?这不是崇洋媚外。首先,我们要知道,Linux 发展这么多年,一直在桌面端没啥起色,这和 Linux 的设计理念有关。Linux 的理念就是自由,折腾。那些大神一不爽,就另起炉灶。桌面有 KDE、Gnome、Unity、Xface 等等,软件包管理有 deb、yun、snap、AppImage 等等。对于喜欢折腾的极客来说,Linux 的可玩性非常高。但做为一名开发者,我们要明确目标,所谓不忘初心,我们的目标是交付软件,这需要一个稳定的开发环境,一个高效的开发环境。

Ubuntu 经过这么多年的发展,稳定性越来越好,在程序员圈子口碑不错,比如 Google 的 Android 编译就推荐 Ubuntu。关键是,这么多年,无数程序员贡献了经验。你在 Ubuntu 上碰到的问题,几乎都可以在网上找到答案。换作麒麟系统,碰到问题,可就没那么幸运。麒麟的设计目标是普通用户,安全等等,所以会砍掉很多东西,也加入了诸多限制。在麒麟系统上自己下个软件,就是各种安全警告,如果每次编译一下代码就警告一次,烦不烦。我们的目标是解决问题,而不是制造问题。等要交付产品的时候,你跟老板说,我解决了麒麟系统多少多少问题,这是老板要的结果吗?

Ubuntu 版本选择

推荐使用 Ubuntu 20.04。

是的,你没有看错。当初装 Ubuntu 时,考虑到 Ubuntu LTS 的支持期限是 4 年,20.04 的支持到明年就结束了,所以选择了 22.04 LTS。但是没想到,麒麟系统上的 glibc 版本为 2.31,而 Ubuntu 22.04 的 glibc 版本为 2.35。在 Ubuntu 上编译的程序在麒麟系统上就报错误:

cannot find GLIBC_2_3_5

别小看这点版本差异,glibc 是系统基础库,很多库都依赖它,可不要随便乱动,不要乱升级。当然解决的方法有,比如静态链接,编译时指定链接路径之类的,总之要麻烦很多。

QT 版本选择

QT 版本尽量选择 LTS 版本。目前最新的 QT LTS 版本 6.6.1,很多程序员觉得选旧不如选新,但这里建议选择 5.15.2 这个版本。因为 QT 6 应用程序和 Linux 下的 fctix 输入法框架存在兼容问题,而麒麟、UOS 上都是默认安装的搜狗拼音输入法,这个是基于 fctix 输入法框架的。使用 QT 6 开发应用,遇到输入法问题,会让你抓狂到怀疑人生。

Ubuntu 开发相关软件安装

  1. 开发相关
sudo apt update
sudo apt install build-essential cmake libxcb-xinerama0 subversion libudev-dev libevdev-dev libgtk-3-dev
  1. 下载 QT 的 Linux 版本,为 qt-unified-linux-xxx-online.run 这样的文件
  2. 修改可执行权限,并运行安装程序
chmod a+x qt-unified-linux-xxx-online.run
./qt-unified-linux-xxx-online.run

Qt 默认安装在 $HOME/Qt 下,建议安装在 /opt/Qt 下

问题

  1. QT Creator 无法输入中文:

原因1:QT Creator 版本过高,如果使用的是基于Qt 6 创建的版本,解决方法是直接使用 ubuntu 软件仓库中的包:

sudo apt install qtcreator

原因2:缺少 fcitx qt 插件,我们常用的搜狗输入法就是基于 fcitx 框架,所以必须装这个:

cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /work/QtCreator/lib/Qt/plugins/platforminputcontexts/

将其中 /work/QtCreator 替换为你的 Qt Creator 安装目录。

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

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

相关文章

鲜花销售|鲜花销售小程序|基于微信小程序的鲜花销售系统设计与实现(源码+数据库+文档)

鲜花销售小程序目录 目录 基于微信小程序的鲜花销售系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、前台功能模块 2、后台功能模块 (1) 后台登录 (2) 管理员功能模块 用户管理 商家管理 鲜花信息管理 鲜花分类管理 管理员管理 系统管理 (3) 商家功…

2017年苏州大学837复试机试C/C++

2017年苏州大学复试机试 要求 要求用C/C编程;对程序中必要的地方进行注释。上机规则 请在电脑桌面上新建一个文件夹文件夹名为考试姓名(中文);考试完毕后,将所编写的文件放在上述文件中。 第一题(20分&…

CSS的元素显示模式

一&#xff0c;什么是元素显示模式 元素显示模式是指元素以什么方式显示&#xff0c; 作用&#xff1a;了解不同类型的标签可以更好的布局网页。 HTML元素一般分为块元素和行内元素。 1.1块元素 常见的块元素有&#xff1a;<p><ul><ol><li>,<di…

window 搭建 Flutter for Android的环境(二)

最近又重置了笔记本系统&#xff0c;因此又得重新部署Flutter环境&#xff0c;所以就再重新整理了一下&#xff1a; 下载安装好Android、git下载安装好对应版本的Flutter 下载地址:部署环境变量&#xff1a; ANDROID_HOME C:\Users\Administrator\AppData\Local\Android\SdkC:…

winserver2012远程黑屏且无法操作

当我们遇到远程windows服务器发现GUI图形加载异常&#xff0c;黑屏显示&#xff0c;且无法进行任何操作&#xff0c;我们可以尝试以下方法。 1.尝试远程命令重启 #11.11.11.11 远程服务器ip #Administrator 远程桌面用户名 #12345678 密码 #shutdown.exe -r -f 在一分钟…

【计算机网络】HTTPS协议原理

文章目录 一、相关基础概念1.HTTPS 是什么2.什么是"加密"3.为什么要加密4.常见的加密方式5.数据摘要 && 数据指纹 二、HTTPS 的工作过程 -- 加密方式1.只使用对称加密2.只使用非对称加密3.双方都使用非对称加密4.非对称加密 对称加密5.中间人攻击6.证书7.非…

力扣144 二叉树的前序遍历 Java版本

文章目录 题目描述递归方法代码 非递归方法代码 题目描述 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xf…

ElementUI Data:Table 表格

ElementUI安装与使用指南 Table 表格 点击下载learnelementuispringboot项目源码 效果图 el-table.vue&#xff08;Table表格&#xff09;页面效果图 项目里el-table.vue代码 <script> export default {name: el_table,data() {return {tableData: …

蓝桥杯省赛无忧 数位DP 课件78 数位DP

01 算法概述 02 问题引入 03 算法分析 04 例题

《QDebug 2024年1月》

一、Qt Widgets 问题交流 1. 二、Qt Quick 问题交流 1.Repeator 的 delegate 在 remove 移除时的注意事项 Qt Bug Tracker&#xff1a;https://bugreports.qt.io/browse/QTBUG-47500 Repeator 在调用 remove 函数之后&#xff0c;对应的 Item 会立即释放&#xff0c;后续就…

如何基于文档的内容实现 AI 对话功能,以 Documate 为例

前言 在 ChatGPT 出现之时&#xff0c;社区内也出现过 把 React 官方文档投喂给它 &#xff0c;然后对它进行提问的实践。但是&#xff0c;由于每次 ChatGPT 对话能接受的文本内容对应的 Token 是有上限的&#xff0c;所以这种使用方式存在一定的手动操作成本和不能复用的问题…

Linux eject命令教程:如何安全地弹出你的设备(附实例详解和注意事项)

Linux eject命令介绍 eject命令在Linux中用于弹出可移动设备。这通常是光盘&#xff0c;但也可以是软盘&#xff0c;磁带&#xff0c;或JAZ或ZIP磁盘。此命令还可以控制一些多碟CD-ROM切换器&#xff0c;一些设备支持的自动弹出功能&#xff0c;以及关闭一些CD-ROM驱动器的光盘…

使用Ettus USRP X440对雷达和EW系统进行原型验证

概览 无论是保障己方平台的生存能力&#xff0c;还是扰乱敌方频谱使用&#xff0c;以电磁(EM)频谱为主导都是任务成功的主要因素。电磁频谱操作(Electromagnetic Spectrum Operation, EMSO)需要使用战术系统来监测敌方的频谱活动、定位其发射器并帮助己方制定行动计划。软件无…

新 Ubuntu 14.04 服务器的基本配置

简介 在为新服务器设置最低配置之后&#xff0c;大多数情况下都建议进行一些额外的步骤。在本指南中&#xff0c;我们将继续配置我们的服务器&#xff0c;处理一些推荐但可选的程序。 先决条件和目标 在开始本指南之前&#xff0c;您应该先运行 Ubuntu 14.04 初始服务器设置…

离散数学——特殊关系(笔记及思维导图)

离散数学——特殊关系&#xff08;笔记及思维导图&#xff09; 笔记来自【电子科大】离散数学 王丽杰

DIY制作硬模空心耳机壳使用的是什么原材料?

制作硬模空心耳机壳的原材料可以根据不同的制作要求和材料特性进行选择。以下是一些常见的原材料&#xff1a; 塑料&#xff1a;塑料是一种常用的耳机壳制作材料&#xff0c;具有轻便、耐用、防水等特点。常见的塑料材料包括ABS、PC、PA等&#xff0c;可以根据具体要求进行选择…

vue+springboot项目开发,使用MySQL示例数据库sakila

vuespring boot项目开发&#xff0c;使用MySQL示例数据库sakila 从零开始开发一个简单的前后端分离项目&#xff0c;实现对MySQL示例数据库sakila中film表的数据展示。 环境配置 使用IDEA进行后端开发&#xff08;Spring Boot&#xff09; 安装IDEA&#xff1a;参考JDK的安…

20240131在ubuntu20.04.6下使用whisper不同模式的比对

20240131在ubuntu20.04.6下使用whisper不同模式的比对 2024/1/31 16:07 首先你要有一张NVIDIA的显卡&#xff0c;比如我用的PDD拼多多的二手GTX1080显卡。【并且极其可能是矿卡&#xff01;】 2、请正确安装好NVIDIA最新的驱动程序和CUDA。可选安装&#xff01; 3、配置whisper…

开发实践9_OnlinePlatform笔记

学习朔宁夫开发工程师课程笔记。 0架构&#xff1a; 01. MyDoc\PycharmProjects\ProjOnline&#xff0c;注册一个index app备主页用。 02. python manage.py startapp users, python manage.py startapp course. install apps. 03. total url urlpatterns [# http://127.…

Springboot项目启动后浏览器不能直接访问接口,而postman可以访问?

在云服务器上部署springboot后端时&#xff0c;项目启动后浏览器不能直接访问接口,而postman可以访问。这是当时困扰了我大半天的小问题&#xff0c;在我打开防火墙和阿里云安全组之后还是没解决。然后在网上搜了很多很多资料&#xff0c;以为是浏览器访问权限或者是https什么证…