银河麒麟(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
准备工作
-
去QT官网下载QT-5.15.12源码
-
确保系统的gcc,g++, python, perl等符合Qt安装要求,具体请参见Qt源码内的README文档
编译
- 编译安装QT
进入qt-everywhere-src-5.15.12目录执行以下命令:
sudo ./configure -prefix /opt/qt5.15.12 -xcb -nomake tests -nomake examples
make -j8 #-j8为编译时多核优化,视物理机而定
make install #然后执行安装
编译中途报错缺少库依赖,自行安装缺少的库。
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
sudo apt-get install gperf bison flex host pkg-config
问题
我在编译过程中报错error: [Makefile.gn_run:1169:run_ninja] 错误 1
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停止构建
- 安装缺失依赖库:
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+:
sudo ln -sf /usr/bin/python3 /usr/bin/python
- 清理并重新配置 Qt
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
+ /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 在配置阶段检测到两个关键依赖库缺失:
- poppler-cpp(PDF 渲染支持)
- libpulse(音频支持)
虽然这些库 不是 QtWebEngine 的核心依赖(构建仍可继续),但缺失会导致部分功能受限(如 PDF 预览、音频播放)。以下是解决方案:
安装缺少的库
sudo apt update
sudo apt install \libpoppler-cpp-dev \ # poppler-cpplibpulse-dev \ # libpulselibglib2.0-dev # libpulse 的依赖
安装缺少的库
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)警告:(可以忽略)
警告: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++ 代码。
- 安装 libclang 开发包:
sudo apt-get install libclang-dev
- 确保 llvm-config 在 PATH 中:
which llvm-config
- 如果没有,可能需要安装 llvm:
sudo apt-get install llvm
- 安装后验证 llvm-config 是否可用:
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版本