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

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

前言

信创系统,包括统信 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 安装目录。

相关推荐

  1. 系统软件开发环境QT

    2024-02-04 19:22:05       28 阅读
  2. Ubuntu系统开发环境和常用软件

    2024-02-04 19:22:05       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-04 19:22:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-04 19:22:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-04 19:22:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-04 19:22:05       18 阅读

热门阅读

  1. PyCharm 中使用共享虚拟环境的方法

    2024-02-04 19:22:05       34 阅读
  2. 「数据结构」栈:题解

    2024-02-04 19:22:05       33 阅读
  3. iOS图像处理----OpenGL ES之灰色滤镜

    2024-02-04 19:22:05       39 阅读
  4. node 版本管理器 --- Volta

    2024-02-04 19:22:05       35 阅读
  5. 介绍 HTTPS 中间人攻击

    2024-02-04 19:22:05       34 阅读
  6. PLM传输生产工艺至SAP-RFC代码

    2024-02-04 19:22:05       32 阅读
  7. linux基础工具-make/makefile

    2024-02-04 19:22:05       35 阅读