银河麒麟(Kylin) - V10 SP1桌面操作系统ARM64编译QT-5.15.12版本

银河麒麟(Kylin) - V10 SP1桌面操作系统ARM64编译QT-5.15.12版本

原因

测试Kylin-Desktop-V10-SP1-General-Release-2303-arm64系统下,编译QT-5.15.12版本已做测试。

测试环境

测试板配置

型号:LM-D2000-NONE-1w-V01-pc_A2150

CPU:飞腾D2000/8 (2.3GHz)

内存:32G

硬盘:256G SSD

系统:Desktop-V10-SP1-General-Release-2303

平台架构:ARM

准备工作

  1. 去QT官网下载QT-5.15.12源码

  2. 确保系统的gcc,g++, python, perl等符合Qt安装要求,具体请参见Qt源码内的README文档

编译

  1. 编译安装QT

进入qt-everywhere-src-5.15.12目录执行以下命令:

bash 复制代码
sudo ./configure -prefix /opt/qt5.15.12 -xcb -nomake tests -nomake examples
bash 复制代码
make -j8  #-j8为编译时多核优化,视物理机而定
bash 复制代码
make install  #然后执行安装

编译中途报错缺少库依赖,自行安装缺少的库。

bash 复制代码
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
bash 复制代码
sudo apt-get install gperf  bison flex host pkg-config

问题

我在编译过程中报错error: [Makefile.gn_run:1169:run_ninja] 错误 1

bash 复制代码
ninja: build stopped: subcommand failed.
make[4]: *** [Makefile.gn_run:1169:run_ninja] 错误 1
make[4]: 离开目录"/home/zhang/qt-everywhere-src-5.15.12/qtwebengine/src/core"
make[3]: *** [Makefile:82:sub-gn_run-pro-make_first] 错误 2
make[3]: 离开目录"/home/zhang/qt-everywhere-src-5.15.12/qtwebengine/src/core"
make[2]: *** [Makefile:80:sub-core-make_first] 错误 2
make[2]: 离开目录"/home/zhang/qt-everywhere-src-5.15.12/qtwebengine/src"
make[1]: *** [Makefile:49:sub-src-make_first] 错误 2
make[1]: 离开目录"/home/zhang/qt-everywhere-src-5.15.12/qtwebengine"
make: *** [Makefile:1088:module-qtwebengine-make_first] 错误 2

QtWebEngine编译失败的问题,错误信息还是关于ninja停止构建

  • 安装缺失依赖库:
bash 复制代码
sudo apt install \
    libnss3-dev libdrm-dev libxcomposite-dev libxcursor-dev \
    libxi-dev libxtst-dev libxkbfile-dev libxkbcommon-dev \
    libfontconfig1-dev libdbus-1-dev libevent-dev libwebp-dev \
    libicu-dev libxslt1-dev libxml2-dev libjpeg-dev libpng-dev \
    libssl-dev libopus-dev libminizip-dev libsnappy-dev \
    libjsoncpp-dev libre2-dev protobuf-compiler ninja-build
  • 修复 Python 环境

确保默认 python 指向 Python 3.6+:

bash 复制代码
sudo ln -sf /usr/bin/python3 /usr/bin/python
  • 清理并重新配置 Qt
bash 复制代码
cd /home/zhang/qt-everywhere-src-5.15.12
make distclean
rm -rf config.cache
# 重新配置
./configure -prefix /opt/qt5.15.12 -xcb -nomake tests -nomake examples
  • 如果仍失败

检查 config.log

bash 复制代码
+ /usr/bin/pkg-config --exists --silence-errors poppler-cpp
pkg-config did not find package.
  => source produced no result.
test config.qtwebengine_core.libraries.webengine-poppler-cpp FAILED
loaded result for library config.qtwebengine_core.libraries.webengine-pulseaudio
Trying source 0 (type pkgConfig) of library webengine-pulseaudio ...
+ /usr/bin/pkg-config --exists --silence-errors libpulse '>=' 0.9.10 libpulse-mainloop-glib
pkg-config did not find package.
  => source produced no result.
test config.qtwebengine_core.libraries.webengine-pulseaudio FAILED

错误分析:

QtWebEngine 在配置阶段检测到两个关键依赖库缺失:

  1. poppler-cpp(PDF 渲染支持)
  2. libpulse(音频支持)

虽然这些库 不是 QtWebEngine 的核心依赖(构建仍可继续),但缺失会导致部分功能受限(如 PDF 预览、音频播放)。以下是解决方案:

安装缺少的库

bash 复制代码
sudo apt update
sudo apt install \
    libpoppler-cpp-dev \      # poppler-cpp
    libpulse-dev \            # libpulse
    libglib2.0-dev           # libpulse 的依赖

安装缺少的库

bash 复制代码
sudo apt-get install bison build-essential gperf flex ruby python libasound2-dev libbz2-dev libcap-dev libcups2-dev libdrm-dev libegl1-mesa-dev libgcrypt* libnss3-dev libpci-dev libpulse-dev libudev-dev libxtst-dev gyp ninja-build  libglu1-mesa-dev libfontconfig1-dev libx11-xcb-dev libicu-dev pulseaudio* libxkbcommon* libxcb* libthread* libgstreamer* 

编译 Qt 文档 (QDoc)警告:(可以忽略)

bash 复制代码
警告:WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.

Either ensure that llvm-config is in your PATH environment variable, or set LLVM_INSTALL_DIR to the location of your llvm installation.
On Linux systems, you may be able to install libclang by installing the libclang-dev or libclang-devel package, depending on your distribution.
On macOS, you can use Homebrew's llvm package.
On Windows, you must set LLVM_INSTALL_DIR to the installation path.

这个警告表明你的系统缺少编译 Qt 文档 (QDoc) 所需的依赖项 - libclang。QDoc 是 Qt 的文档生成工具,它依赖于 LLVM/Clang 来解析 C++ 代码。

  1. 安装 libclang 开发包:
bash 复制代码
sudo apt-get install libclang-dev
  1. 确保 llvm-config 在 PATH 中:
bash 复制代码
which llvm-config
  1. 如果没有,可能需要安装 llvm:
bash 复制代码
sudo apt-get install llvm
  1. 安装后验证 llvm-config 是否可用:
bash 复制代码
llvm-config --version

解决编译Qt时Qt 文档 (QDoc) 警告

测试

完成

编译成功:银河麒麟(Kylin) - V10 SP1桌面操作系统ARM64编译QT-5.15.12版本

编译成功:银河麒麟(Kylin) - V10 SP1桌面操作系统ARM64编译QT-5.15.13版本

编译成功:银河麒麟(Kylin) - V10 SP1桌面操作系统ARM64编译QT-5.15.14版本

编译成功:银河麒麟(Kylin) - V10 SP1桌面操作系统ARM64编译QT-5.15.15版本

编译成功:银河麒麟(Kylin) - V10 SP1桌面操作系统ARM64编译QT-5.15.16版本

相关推荐
瓦哥架构实战1 小时前
从 Prompt 到 Context:LLM OS 时代的核心工程范式演进
大数据
weixin_lynhgworld2 小时前
盲盒抽卡机小程序系统开发:以技术创新驱动娱乐体验升级
大数据·盲盒·抽谷机
TDengine (老段)3 小时前
TDengine 时间函数 TODAY() 用户手册
大数据·数据库·物联网·oracle·时序数据库·tdengine·涛思数据
悟乙己3 小时前
数据科学家如何更好地展示自己的能力
大数据·数据库·数据科学家
Android小码家4 小时前
Vscode + docker + qt 网络监听小工具
vscode·qt·docker
东哥说-MES|从入门到精通4 小时前
Mazak MTF 2025制造未来参观总结
大数据·网络·人工智能·制造·智能制造·数字化
盟接之桥4 小时前
盟接之桥说制造:在安全、确定与及时之间,构建品质、交期与反应速度的动态平衡
大数据·运维·安全·汽车·制造·devops
yudiandian20144 小时前
【QT 5.12.12 打包-Windows 平台下】
开发语言·qt
链上日记5 小时前
STC携手VEX发起全球首个碳资产RWA生态,泰国峰会即将引爆绿色金融
大数据
用户Taobaoapi20145 小时前
京东商品列表API(JD.item_search)
大数据·数据挖掘·数据分析