銀河麒麟(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目錄執行以下命令:

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 在配置階段檢測到兩個關鍵依賴庫缺失:

  1. poppler-cpp(PDF 渲染支持)
  2. 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++ 代碼。

  1. 安裝 libclang 開發包:
sudo apt-get install libclang-dev
  1. 確保 llvm-config 在 PATH 中:
which llvm-config
  1. 如果沒有,可能需要安裝 llvm:
sudo apt-get install llvm
  1. 安裝后驗證 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版本

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77108.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

查看前端項目依賴樹型結構關系圖的詳細方法,涵蓋 命令行工具 和 可視化工

以下是查看前端項目依賴樹型結構關系圖的詳細方法&#xff0c;涵蓋 命令行工具 和 可視化工具&#xff1a; 一、命令行工具生成依賴樹 1. npm # 查看項目依賴樹&#xff08;文本形式&#xff09; npm ls# 查看指定包的依賴樹 npm ls <package-name># 生成JSON格式的依…

Ollama高并發測試

本文主要來測試一下ollama的高并發能力。 具體配置如下&#xff1a; 一、Ollama默認參數執行 我們打開4個窗口&#xff0c;然后分別讓DeepSeek “給我講一個笑話” &#xff0c;看下不同窗口的答題順序。 通過答題順序可以看到&#xff0c;在不進行參數設置時&#xff0c;模…

資源管理與HPA:讓Kubernetes應用自動伸縮

引言&#xff1a;從“手動擋”到“自動駕駛” 想象我們駕駛一輛汽車&#xff0c;手動調節油門和換擋不僅費力&#xff0c;還難以應對突發狀況。我們的應用服務也一樣&#xff0c;在面對突然的流量增長&#xff0c;內存使用暴漲該如何應對。HPA&#xff08;Horizontal Pod Auto…

Windows 下 MongoDB ZIP 版本安裝指南

在開發和生產環境中&#xff0c;MongoDB 是一種非常流行的 NoSQL 數據庫&#xff0c;以其靈活性和高性能而受到開發者的青睞。對于 Windows 用戶來說&#xff0c;MongoDB 提供了多種安裝方式&#xff0c;其中 ZIP 版本因其靈活性和輕量級的特點&#xff0c;成為很多開發者的首選…

【Linux網絡與網絡編程】11.數據鏈路層mac幀協議ARP協議

前面在介紹網絡層時我們提出來過一個問題&#xff1a;主機是怎么把數據交給路由器的&#xff1f;那里我們說這是由數據鏈路層來做的。 網絡上的報文在物理結構上是以mac幀的形式流動的&#xff0c;但在邏輯上是以IP流動的&#xff0c;IP的流動是需要mac幀支持的。 數據鏈路層解…

多模態思維鏈AI醫療編程:從計算可持續性到開放域推理的系統性解決方案

多模態思維鏈AI醫療編程:從計算可持續性到開放域推理的系統性解決方案 醫療AI領域的多模態思維鏈技術正在重塑臨床決策支持、醫學影像分析和醫療流程優化的范式。本指南從計算可持續性、錯誤傳播控制、倫理安全防護和通用性擴展四大維度,系統解析醫療大模型落地落地的關鍵要…

代理模式深度解析

目錄 一 靜態代理 1.1 優點 1.2 缺點 1.3 適用場景 二 JDK動態代理 1 JDK動態代理的工作原理 1.1 創建代理類 1.2 加載代理類 1.3 實現方法調用 2. Proxy.newProxyInstance() 的核心工作流程 方法簽名 工作步驟 3. 代理類的生成與加載 3.1 代理類生成的關鍵方法 …

Spring Cache與Redis集成原理

一、核心架構圖解 #mermaid-svg-aiWGQLhmWx7kOfLz {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-aiWGQLhmWx7kOfLz .error-icon{fill:#552222;}#mermaid-svg-aiWGQLhmWx7kOfLz .error-text{fill:#552222;stroke:#5…

編程技能:調試02,設置斷點與刪除斷點

專欄導航 本節文章分別屬于《Win32 學習筆記》和《MFC 學習筆記》兩個專欄&#xff0c;故劃分為兩個專欄導航。讀者可以自行選擇前往哪個專欄。 &#xff08;一&#xff09;WIn32 專欄導航 上一篇&#xff1a;編程技能&#xff1a;調試01&#xff0c;調試介紹 回到目錄 下…

flink寫doris時的優化

1.概念 doris并不擅長高頻、小量數據的導入&#xff1b; 因為doris每一次數據導入都會在be節點上生成數據文件&#xff1b;如果高頻導入小量數據&#xff0c;就會在存儲層產生大量的小文件&#xff08;必然會影響到后續的查詢效率&#xff0c;也會對系統產生更多的compaction…

ElementNotInteractableException原因及解決辦法

在自動化測試中,ElementNotInteractableException是一個常見的異常,它通常發生在嘗試與網頁上的某個元素進行交互(例如點擊、輸入等操作)時,但由于該元素當前不可交互。這可能由多種原因引起,以下是一些常見的原因及其解決方法: 元素未完全加載 如果嘗試與頁面上的元素交…

如何從 GitHub 鏡像倉庫到極狐GitLab?

最近 GitHub 封禁中國用戶的事情鬧得沸沸揚揚,雖然官方發布的報道說中國用戶被限制登錄是因為配置錯誤導致,已經撤回了更新,中國用戶已經可以正常使用。但是這就像橫在國內開發者和企業頭上的“達摩克利斯之劍”。為了避免 GitHub 不可用而帶來的影響,國內開發者和企業可以…

服務器安裝nacos

1.下載依賴 docker pull nacos/nacos-server:v2.4.3安裝 docker run -d --name nacos-server -p 8848:8848 -e MODEstandalone nacos/nacos-server:v2.4.3把nacos中的data 文件和conf 文件copy到自己服務的文件夾 docker cp nacos-server:/home/nacos/data /home/admin1/…

Matter協議暗戰:蘋果、谷歌、亞馬遜的智能家居霸權爭奪

原文地址&#xff1a;Matter協議暗戰&#xff1a;蘋果、谷歌、亞馬遜的智能家居霸權爭奪 一、Matter 協議&#xff1a;巨頭聯手打造的 “智能家居聯合國” 1.1 從 CHIP 到 Matter&#xff1a;標準統一的十年長跑 智能家居發展多年&#xff0c;卻始終被 “孤島效應” 困擾。各…

軟件設計師2009-2022歷年真題與答案解析(附pdf下載)

軟考在即&#xff0c;現在給大家分享一下軟件設計師2009-2022真題與答案解析 pdf全套&#xff0c;文末提供大家免費下載&#xff0c;大家都知道在軟考備考過程中&#xff0c;擁有一套全面且實用的考試資料對于考生來說至關重要。目錄如下&#xff1a; 歷年真題及詳解2004-2019 …

基于EasyX庫開發的球球大作戰游戲

目錄 球球大作戰 一、開發環境 二、流程圖預覽 三、代碼邏輯 1、初始化時間 2、設置開始界面大小 3、設置開始界面 4、讓玩家選擇速度 5、設置玩家小球、人機小球、食物的屬性 6、一次性把圖繪制到界面里 7、進入死循環 8、移動玩家小球 9、移動人機 10、食物刷新…

aslist和list的區別

?Arrays.asList和List的主要區別在于它們的固定長度和不可變性、與原始數組的關系、性能以及使用場景。 一、固定長度和不可變性 ?Arrays.asList?&#xff1a;通過Arrays.asList方法創建的List是一個固定長度的List&#xff0c;其長度與原始數組相同。這意味著你不能通過添…

大模型預標注和自動化標注在OCR標注場景的應用

OCR&#xff0c;即光學字符識別&#xff0c;簡單來說就是利用光學設備去捕獲圖像并識別文字&#xff0c;最終將圖片中的文字轉換為可編輯和可搜索的文本。在數字化時代&#xff0c;OCR&#xff08;光學字符識別&#xff09;技術作為處理圖像中文字信息的關鍵手段&#xff0c;其…

stm32工程,拷貝到另一臺電腦編譯,錯誤提示頭文件找不到cannot open source input file “core_cm4.h”

提示 cannot open source input file “core_cm4.h” ,找不到 [ core_cm4.h ] 這個頭文件 . 于是我在原電腦工程文件里找也沒有找到這個頭文件 接下來查看原電腦keil的頭文件引入配置,發現只引入了工程文件下的頭文件, 那么core_cm4.h到底哪里來的? (到現在我也不清楚怎…

STM32 模塊化開發指南 · 第 2 篇 如何編寫高復用的外設驅動模塊(以 UART 為例)

本文是《STM32 模塊化開發實戰指南》的第 2 篇,聚焦于“串口驅動模塊的設計與封裝”。我們將從一個最基礎的裸機 UART 初始化開始,逐步實現:中斷支持、環形緩沖收發、模塊接口抽象與測試策略,構建一個可移植、可擴展、可復用的 UART 驅動模塊。 一、模塊化 UART 的設計目標…