乐趣区

关于qt:麒麟操作系统-kylinos-从入门到精通-研发环境-第五十篇-通过源码编译QT-SDK与打包

0. 根底环境

类别:笔记本
型号:中国长城 NF14C
硬件平台:飞腾处理器(ArmV8 指令集)
零碎:河汉麒麟操作系统 V10 SP1(2203)

关键词:
信创, 麒麟零碎,linux,c++,c, 飞腾,qt,qt5,qt6,qtsdk 编译

1. 背景

QT 是 Linux 下或嵌入式环境下,支流的跨平台软件开发平台,丰盛和成熟的生态工具,许多开源软件都是基于 QT 所研发,零碎仓库或商店内置的版本大部分状况下都满足咱们的需要。然而局部软件对 QT SDK (qmake)均有版本要求,因而本文通过几天的实际,试错,为大家提供一个可供参考的过程。

2.QT5.15.8 SDK 编译装置过程

2.1 参考资料

2.1.1 官网参考资料

1.https://doc.qt.io/qt-5/linux-building.html
2.https://wiki.qt.io/Building_Qt_5_from_Git
3.https://doc.qt.io/qt-5/configure-options.html

2.1.2 其余参考资料

1.http://c.biancheng.net/view/3851.html
国内镜像网站
这里给大家举荐几个国内驰名的 Qt 镜像网站,次要是各个高校的:

    中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
    清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
    北京理工大学:http://mirror.bit.edu.cn/qtproject/
    中国互联网络信息中心:https://mirrors.cnnic.cn/qt/

2.2 QTSDK 源代码下载

https://download.qt.io/archive/qt

https://download.qt.io/archive/qt/6.3/6.3.1/single/

文件夹阐明

2.3 环境筹备

留神:arm64 官网没有发行,只能下载本人编译。编译时请保证系统洁净(我在一台装过 QT5.12 的电脑上总会呈现一些谬误,在洁净的零碎上很顺利)。

2.3.1 移除本人手动装置的 QT5 以及相干的 creator(前面再装即可)

sudo apt-get remove  qt5-default qt5-doc qt5-doc-html qtbase5-doc-html qtbase5-examples qt5-qmake qt5-qmake-bin -y  #卸载现有 QT5,不然在 make 时容易呈现各种谬误,还找不到起因,放弃环境尽量洁净。如果这些操作还不行,为保障成功率就想方法弄一个洁净初装的零碎进行解决。sudo autoremove #卸载不必要的依赖

2.3.2 依据官网阐明装置相干依赖

依据官网应用 GIT 从源码构建,装置相干依赖

sudo apt-get install build-essential perl python3 git  -y
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev -y 
sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby ruby-dev -y
sudo apt-get install libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libxtst-dev libxss-dev libdbus-1-dev libevent-dev libfontconfig1-dev libcap-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libegl1-mesa-dev gperf bison -y
sudo apt-get install libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev -y
sudo apt install clang libclang-dev -y

qtweb 还可能用到 nodejs, 通过 nvm-cli 装置 node, 参考:专栏第十五篇 https://segmentfault.com/a/1190000041978634

2.3.3 相干目录设置

将 sdk 源码解压到自定义文件夹,进行编译

sudo chmod -R 777 * #在 qt-everything-src 目录中把权限全副放开
mkdir ~/sdk/qt/qt-everywhere-build-5.15.8 #将构建的文件和源代码离开,文件夹名称不限本人晓得就行

我是这样的

2.3.4 编译装置

cd ~/sdk/qt/qt-everywhere-build-5.15.8
~/sdk/qt/qt-everywhere-src-5.15.8/configure -prefix /opt/Qt5.15.8 -platform linux-g++ #配置, 没有 prefix 默认装置在 /usr/local/Qt-%VERSION%; 默认应用 clang, 能够通过 platform 参数指定编译平台
make -j 8 #编译,8 代表同时用几个线程,倡议为了减速设置为 CPU 的线程数。也能够加到 16 个这样的,因为两头除了编译还有许多 make 动作。如果呈现权限谬误,则应用 sudo 提权。make install #装置, 如果报权限错,用 sudo make install 重试

2.3.5 零碎变量设置

配置零碎门路
vim ~.bashrc
增加

PATH=/opt/Qt5.15.8/bin:$PATH #这里应用配置的地址,默认在 configure 不配置时,则应用是 /usr/local/Qt-%VERSION%/bin

使其失效 source ~/.bashrc
执行 qmake -version 确认成果

2.3.6 QtCreator 中配置

关上 qt creator, 点工具 | 选项菜单

我的 qmake 地位如下(cmake 不必配置,已自动检测到),刚刚编译的能够手动增加指定

kits 配置好

2.4 SDK 安装包制作

2.4.1 deb 包形式制作

//todo

2.4.2 appimage 包形式制作

//todo

3.QT6 编译装置过程

//todo

写在最初

做为跨平台的代表,没有提供各个版本的 ARM 版本,着实有点不应该。将来国产 RISC- V 的时候,可能还须要经验这一些。

麒麟零碎专栏:
地址一:https://segmentfault.com/blog/kylinos
邮箱:1179611323@qq.com
群:662512340
github:https://github.com/xiaohelong
twitter:https://twitter.com/xiaohelong
发行日志:
20230404 首发

退出移动版