【Qt编译】ARM环境 Qt5.14.2-QtWebEngine库编译 (完整版)

news2024/11/16 20:58:15

ARM 编译Qt5.14.2源码

1.下载源码

下载Qt5.14.2源代码(可根据自己的需求下载不同版本)
在这里插入图片描述

下载网站:https://download.qt.io/new_archive/qt/5.14/5.14.2/single/

2.相关依赖(如果需要的话)

先参考官方文档的需求进行安装
官方安装依赖参考文档

2.1 QtWebEngine相关依赖

sudo apt-get install flex libicu-dev libxslt-dev
sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev 
sudo apt-get install libdus* dbus*
sudo apt-get install libfontconfig1-dev fontconfig libcap-dev libxtst-dev libxext-dev
sudo apt-get install libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev 
sudo apt-get install libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt-get install libcups2* pulseaudio* alsa-* mesa-* systemd* system-* libgudev-1.0-dev libatspi2.0* at-spi2-* libclipper-dev
sudo apt-get install nodejs gyp ninja-build libdrm-dev

2.2 QtBase相关依赖

sudo apt-get install bison build-essential qt5-default 
sudo apt-get install perl git gperf ruby 
sudo apt-get install libclang-10-dev llvm-10*
sudo apt-get install xcb* libxcb* libx11* libxkbcommon* libxrender* libxi-dev

2.3 QtOpenGL相关依赖

sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev freeglut* libgles* libglew*

2.4 QtOpenGL相关依赖

sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev freeglut* libgles* libglew*

备注
上述依赖尽可能安装,实际还需根据后面源码编译报错信息,根据报错缺少的依赖项进行补充安装

如果安装出现报错,可以尝试强制安装

#例如
apt install gperf --fix-missing

3.编译源码

sudo tar -xvf qt-everywhere-src-5.14.2.tar.xz -C /opt/
sudo touch auto.sh
sudo chmod 755 auto.sh
sudo vim auto.sh

3.1 当前目录下编写一个auto.sh文件,然后根据自己的情况,写入如下配置

./configure -prefix /home/book/qt-everywhere-src-5.14.2/arm-qt \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-optimized-qmake \
-c++std c++11 \
--rpath=no \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glib=no \
--iconv=no \
--pcre=qt \
--zlib=qt \
-no-openssl \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
-linuxfb \
--xcb=no \
-tslib \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-I/home/book/tslib/include \
-L/home/book/tslib/lib \
-recheck-all

··备注··

参数说明:
-xplatform : 选择交叉编译时的目标(qtbase/mkspecs/目录中目标平台)
-prefix:Qt最终安装到Arm板中的位置
-extprefix:PC上交叉编译好的Qt的位置
-hostprefix:编译出来给PC用的交叉编译工具存放的位置
-verbose:打印配置过程中步骤信息
-opensource:编译Qt的开源版本
-confirm-license:自动确认许可
-release:编译Qt的release版本
-shared:构建 Qt 共享库,-static 静态库
-make libs:编译 lib 组件
-nomake tests:不编译 tests组件
-nomake examples:不编译 examples 组件
-skip ,跳过不需要的模块
-no-opengl: 我在虚拟机下编译opengl模块报错,未解决 所以选择不编译

3.2执行脚本文件

sudo ./auto.sh
sudo make -j8
sudo make install 

4.QtWebEngine编译遇到问题及解决

4.1 build chromium报错

WARNING: C++14 support is required in order to build chromium.
WARNING: QtWebEngine will not be built.

首先,我个人的解决策略是安装一个chromium-browser

sudo apt update
sudo apt install chromium-browser

4.2 Qt WebEngine Build Tools 缺失补齐

Qt WebEngine Build Tools: 
Use System Ninja ....................... no 
Use System Gn .......................... no 
Jumbo Build Merge Limit ................ 8 
Developer build ........................ no 
QtWebEngine required system libraries: 
fontconfig ........................... no 
dbus ................................. no 
nss .................................. no 
khr .................................. yes 
glibc ................................ yes

经过查询并安装,需要安装一些系统库才能成功构建 Qt WebEngine 模块。这些系统库通常是 Qt WebEngine 所依赖的外部库,缺少其中任何一个都可能导致构建失败。根据输出,你需要安装以下系统库:

  1. fontconfig: 字体配置库,用于处理字体相关的任务。
  2. dbus: D-Bus 是 Linux 桌面应用程序之间进行通信的消息总线系统。
  3. nss(Network Security Services): 用于支持网络安全的库。
  4. khr: 应该是指 Khronos Group 的相关库,可能与 OpenGL 或 Vulkan 相关。
  5. glibc: GNU C 库,是 Linux 系统中的标准 C 库。
#确保安装了这些库的开发包,以便在构建 Qt WebEngine 时能够找到相应的头文件和链接库。你可以使用你的发行版的包管理器来安装这些库的开发包,例如在 Ubuntu 上可以使用 apt 进行安装:
sudo apt install libfontconfig1-dev libdbus-1-dev libnss3-dev libgl1-mesa-dev

4.3 gperf依赖缺失报错

如有一下报错:
在这里插入图片描述

sudo apt install gperf
#安装完成之后查看 gperf --version 查看版本信息

如果上述依赖问题都解决,执行auto.sh脚本编译报依赖缺失,请**清除缓存**

4.4 缺少qtlocation.so 错误印象无法编译

在这里插入图片描述

#auto.sh 脚本中不能 -skip qtlocation
进入到/opt/qt-everywhere-src-5.14.2/qtlocation/ 目录中, 进行编译qtlocation
sudo make -j8
sudo make install

4.5 ld报错 undefined reference to 'ff_h264_xxx’错误

在这里插入图片描述

安装ffmpeg 以及相关依赖

#如果想要添加libwebp ffmpeg opus 等支持还需要运行
sudo apt install libavdevice-dev libavcodec-dev libopus-dev libwebp-dev ffmpeg

5. 删除缓存,然后重新执行auto.sh 脚本编译

sudo rm config.cache

避免反复报没有gperf等依赖错误 如果还报错,则将gperf 添加到PATH环境变量中

#我的 gperf 默认安装路径 /usr/bin/gperf
#which gperf 可以查看
export PATH="$PATH:/usr/bin/gperf"

最后: 如有描述错误的地方或者网友遇到的坑,请评论联系我更正及补充,特此将自己个人两天编译遇到的问题分享给大家,协助大家更好地部署环境。

参考:

【1】./configure参数解释(最新版本)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1595882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

突破界限 千视将在 NAB 2024 展会上展示领先的 AV over IP 技术

突破界限!千视将在 NAB 2024 展会上展示领先的 AV over IP技术 作为AV over IP领域的先驱者,Kiloview将于2024年4月14日至17日在NAB展会(展台号:SU6029)隆重登场,展示我们领先业界的AV over IP产品、解决方…

构建跨设备3D应用:HOOPS的跨平台开发能力

在当今数字化和可视化需求不断提升的时代,三维技术的应用越来越广泛,尤其在制造、建筑、工程及媒体行业。HOOPS,由Tech Soft 3D开发,是一套全面的软件开发工具包,用于构建高性能的三维应用程序。该工具包涵盖了从三维渲…

企业中台技术架构解决方案(中台建设指南Word原件2024)

通过中台建设实现企业能力复用,包括能力整合、业务创新、业务和数据闭环、组织模式演进等。 数字能力整合 企业的数字能力一般包括数字化营销、数字化产品、数字化供应链、数字化生产、数字化运营等。企业的数字化能力的充分利用,从而达到可持续发展。数…

UE5 C++ TimeHandle 定时器练习

一.加相关头文件 #include "TimerManager.h" 二.声明定时器 变量 //声明定时器 FTimerHandle Time; 三.在BeginPaly里面 设参数 GetWorld()->GetTimerManager().SetTimer(Time,this,&AMyCharacter::Printf,1.0,true); //时间句柄 Time 每一秒 调用Pri…

力扣面试150 反转字符串中的单词 API 双指针

Problem: 151. 反转字符串中的单词 &#x1f468;‍&#x1f3eb; 参考思路 &#x1f496; API 大法 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) class Solution {public String reverseWords(String s){s s.trim();// 去除首尾空格List<String&…

笔试的解题思路很多,

昨天发的笔试题目&#xff0c;留言的人还挺多&#xff0c;这道笔试题目是字节的嵌入式笔试题目&#xff0c;从面试的朋友描述说&#xff0c;对方的面试过程很专业。 现场写代码&#xff0c; 金三银四一直是铁律&#xff0c;去年我一个朋友离职后&#xff0c;也是最近这几天拿到…

瑞芯微RK3568/RK3588+鸿蒙,矿鸿工控屏、矿鸿工控板、矿鸿网关,推动矿业数智化变革

4月10日至12日&#xff0c;以“绿色智能创新&#xff0c;携手共赢未来”为主题的第二届中国国际矿业装备与技术展览会在西安举行。信迈科技携矿鸿解决方案及产品亮相&#xff0c;赋能矿山行业数智化升级和国产化改造进程全面提速。 作为华为矿山军团矿鸿生态使能合作伙伴&#…

网络靶场实战-反射DLL注入

在之前的文章中&#xff0c;通过模拟 Windows 映像加载程序的功能&#xff0c;完全从内存中加载 DLL 模块&#xff0c;而无需将 DLL 存储到磁盘上&#xff0c;但这只能从本地进程中加载进内存中&#xff0c;如果想要在目标进程中通过内存加载 DLL 模块&#xff0c;可以通过一些…

每个人都可以做一个赚钱的社群

如何创建并运营一个赚钱的社群 一、引言 大家好&#xff0c;今天&#xff0c;我想和大家分享一下如何创建并运营一个赚钱的社群。我的分享目的是希望能够持续输出有价值的内容。 二、心态建设 1. 重要性&#xff1a;创业心态与平常心 在开始社群运营之前&#xff0c;我们需…

【论文精读】MedIAnomaly:医学图像异常检测的比较研究

文章目录 一、前言&#xff08;一&#xff09;异常检测&#xff08;二&#xff09;文章贡献 二、文献综述&#xff08;一&#xff09;基于重建的异常检测1、图像重建2、特征重建 &#xff08;二&#xff09;基于自监督学习的异常检测1、一阶段方法2、两阶段方法3、其他与 SSL 相…

每日OJ题_BFS解决最短路①_力扣1926. 迷宫中离入口最近的出口

目录 力扣1926. 迷宫中离入口最近的出口 解析代码 力扣1926. 迷宫中离入口最近的出口 1926. 迷宫中离入口最近的出口 难度 中等 给你一个 m x n 的迷宫矩阵 maze &#xff08;下标从 0 开始&#xff09;&#xff0c;矩阵中有空格子&#xff08;用 . 表示&#xff09;和墙&…

2024最新数据分级分类的架构方法流程指南(附下载)

以下是资料目录&#xff0c;如需下载请前往知识星球下载&#xff1a;https://t.zsxq.com/18KTZnJMX ​ ​ ​​​​​​​​​​​​​ 以下是资料目录&#xff0c;如需下载请前往知识星球下载&#xff1a;https://t.zsxq.com/18KTZnJMX ​

Linux/Iclean

Iclean Enumeration nmap 先使用默认规则扫描常用的端口&#xff0c;发现对外开放了 22 和 80 端口&#xff0c;然后扫描这两个端口的详细信息&#xff0c;结果如下&#xff0c;很常规的结果&#xff0c;没发现什么有趣的东西 ┌──(kali㉿kali)-[~/vegetable/HTB/Iclean] …

Python100个库分享第14个—plyfile(将ply文件展示3d模型)

目录 专栏导读库的介绍库的安装ply文件格式介绍ply下载网址&#xff08;是斯坦福大学的3d模型下载网址&#xff09;报错解决完整代码参考&#xff1a;总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &#x1f3f3;️…

003 【笔记神器】Obsidian:打造属于自己的万能工作台

前言&#xff1a;Obsidian 是一款很多大神都在用的笔记软件&#xff0c;具有强大的功能&#xff0c;能够满足日常各种笔记的需求。强大之处在于&#xff1a;Obsidian 能够安装各种强大的插件&#xff0c;实现各种功能。 废话不多说&#xff0c;玩转 Obsidian 仅需这篇文章足矣&…

ThreadX在STM32上的移植:通用启动文件tx_initialize_low_level.s

在嵌入式系统开发中&#xff0c;实时操作系统&#xff08;RTOS&#xff09;的选择对于系统性能和稳定性至关重要。ThreadX是一种广泛使用的RTOS&#xff0c;它以其小巧、快速和可靠而闻名。在本文中&#xff0c;我们将探讨如何将ThreadX移植到STM32微控制器上&#xff0c;特别是…

IDP之Backstage - 环境搭建

0. 目录 1. 前言2. 环境准备&#xff08;Windows10下&#xff09;2.1 安装nvm2.2 git和docker安装 3. 创建模板项目3.1 典型错误: fails on the yarn install step3.2 再次启动3.3 验证 4. 相关 1. 前言 本不想写这篇&#xff0c;因为看着官网文档写着挺简单的&#xff0c;但实…

gcn代码处理出现的问题

README 版本不一致 python 2.7 PYTHON 3.7 切换 TensorFlow系统的学习使用 数据集下载

小程序变更主体需要多久?

小程序迁移变更主体有什么作用&#xff1f;小程序迁移变更主体的好处有很多哦&#xff01;比如可以获得更多权限功能、公司变更或注销时可以保证账号的正常使用、收购账号后可以改变归属权或使用权等等。小程序迁移变更主体的条件有哪些&#xff1f;1、新主体必须是企业主体&am…

3dmax制作小熊猫的基本流程

1.透视图插入面片&#xff0c;改高度宽度&#xff0c;把参考图放进面片里。 2.角度捕捉切换&#xff0c;角度改为90 3.shift旋转&#xff0c;旋转面片&#xff0c;复制一个出来 4.在前视图&#xff0c;把参考图片中的正式图小熊猫的一半的位置&#xff08;可以是眼睛&#x…