银河麒麟(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版本

相关推荐
xiaogai_gai15 小时前
物料主数据从ERP同步到电商中台:基于轻易云的编码映射与增量全量双轨实践
大数据·数据库
zhanghaha131415 小时前
Qt 类完整例程【逐词拆解 + 逐步骤执行保姆教程】
开发语言·qt
SelectDB15 小时前
信创适配速查手册:国产 CPU / OS 对照表、认证许可速查与部署检查项清单
大数据·数据库·数据分析
亚川楼宇自控系统数据中心厂家15 小时前
机房 3D 可视化技术:从平面监控到立体化管理的升级
大数据·数据库·人工智能
LaughingZhu15 小时前
任务在飞书创建,开发在 Orca 继续:我把飞书项目接到了 Linear
大数据·人工智能·深度学习·神经网络·飞书
SelectDB16 小时前
部署形态与存算分离速查:形态对照、配置项清单与关键命令片段
大数据·数据结构·数据库
SelectDB16 小时前
Workload Group 参数速查:排队与并发配置、CPU 软硬限切换与常见配置问题清单
大数据·数据库·数据分析
智享 AI 科技16 小时前
2026年AI私域系统怎么选?从功能到服务的全维度对比
大数据·人工智能·经验分享
mister_guo16 小时前
Elasticsearch:原理、Docker 安装与常用命令
大数据·运维·elasticsearch
starzy199016 小时前
Flink 注册Slot源码深度剖析:从TaskManager注册到Slot状态机的完整链路
大数据·flink