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

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.mzph.cn/news/817458.shtml

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

相关文章

LangChain实战:从原型到生产,动手打造 LLM 应用 书籍推荐!

今天给大家推荐一本大模型方面的书籍<LangChain实战&#xff1a;从原型到生产&#xff0c;动手打造 LLM 应用>&#xff0c;本书将介绍大语言模型的基础理论包括语言模型、分布式模型训练以及强化学习&#xff0c;并以Deepspeed-Chat框架为例介绍实现大语言模型和类ChatGP…

UE4_导入内容_FBX导入选项说明

虽然将FBX文件导入到虚幻引擎4是一个相对简单的过程&#xff0c;但是有相当多的选项可以调整导入的资产。本文档将介绍这些选项。 当你使用FBX管道通过 内容浏览器 导入内容时&#xff0c;将出现 FBX导入选项&#xff08;FBX Import Options&#xff09; 对话框。导入器将自动…

2024第十五届蓝桥杯 C/C++ B组 参赛经历分享(以及部分题解)

前言 emmmmmm&#xff0c;dp杯居然不考dp了&#xff0c;蓝桥一直没怎么出过的高精度居然也考了&#xff08;当时居然因为没太复习那块知识直接模拟混分了&#xff09;&#xff0c;题量也改了&#xff0c;总的来说反而简单了&#xff1f;。。。还好天津竞赛弱省&#xff0c;但愿…

python实现简单的车道线检测

描述 python实现简单的车道线检测&#xff0c;本文章将介绍两种简单的方法 颜色阈值区域掩模canny边缘检测霍夫变换 这两种方法都能实现简单的车道线检测demo&#xff0c;注意仅仅是demo 下面的图片是用到的测试图片 方法1&#xff1a;颜色阈值&#xff08;Color Selection…

资深亚马逊运营实战技巧:跨境电商6大选品法

1、工具选品法 比如店雷达&#xff0c; 通过大数据分析工具选出来利基产品或者通过工具选出来利基的市场&#xff0c;然后再通过分析市场来得到产品。 以女装为例&#xff0c;通过大数据分析&#xff0c;全方位对市场需求、款式、质量等进行多维度判断&#xff0c;其中SKU销量…

改进 Elastic Agent 和 Beats 中的事件队列

作者&#xff1a;Fae Charlton, Alexandros Sapranidis 内部改进如何降低 Elastic 8.13 中的内存使用。 在 8.12 版本中&#xff0c;我们引入了性能预设 —— 一种更简单的方法&#xff0c;用于调整 Elastic Agent 和 Beats 以适应各种场景。这提高了常见环境的性能&#xff0…

OpenHarmony实战开发-如何使用Web预渲染实现功能介绍。

介绍 为了便于大家在使用本案例集时能够更详细的了解各个案例&#xff0c;本案例基于Web预渲染实现了案例介绍功能&#xff0c;即应用右下角的问号icon。 效果图预览 使用说明 因为直接加载的线上README&#xff0c;因此本功能需联网使用点击icon&#xff0c;即会弹出对应案…

爬虫的目的是做什么

通过网站域名获取HTML数据解析数据&#xff0c;获取想要的信息存储爬取的信息如果有必要&#xff0c;移动到另一个网页重复过程 这本书上的代码的网址是 &#xff1a; GitHub - REMitchell/python-scraping: Code samples from the book Web Scraping with Python http://shop.…

风力发电场集中监控系统解决方案

风力发电场集中监控系统解决方案 作为清洁能源之一&#xff0c;风力发电场近几年装机容量快速增长。8月17日&#xff0c;国家能源局发布1-7月份全国电力工业统计数据。截至7月底&#xff0c;全国累计发电装机容量约27.4亿千瓦&#xff0c;同比增长11.5%。其中&#xff0c;太阳能…

火绒安全的用法

火绒安全软件是一款综合性的电脑安全防护工具&#xff0c;提供了病毒查杀、系统防护、网络安全等多种功能&#xff0c;以帮助用户保护电脑免受恶意软件和网络威胁的侵害。以下是火绒安全软件的一些主要用法&#xff1a; 病毒查杀&#xff1a;火绒安全软件提供全盘查杀、快速查杀…

[STM32+HAL]DengFOC移植之闭环位置控制

一、源码来源 DengFOC官方文档 二、HAL库配置 1、开启硬件IIC低速模式 低速更稳定 2、PWM波开启 三、keil填写代码 1、AS5600读取编码器数值 #include "AS5600.h" #include "math.h"float angle_prev0; int full_rotations0; // full rotation trac…

选择电源自动化测试系统,要考虑哪些因素?

随着科技的发展以及市场需求的变化&#xff0c;手动测试以及传统自动化测试不足日益明显&#xff0c;已无法满足当前的电源测试需求&#xff0c;因此&#xff0c;选择全新的自动化测试系统成为必然趋势。那么&#xff0c;要如何选择可靠、高效的电源自动化测试系统呢&#xff1…

计算机网络——网络地址转换(NAT)技术

目录 前言 前篇 引言 SNAT&#xff08;Source Network Address Translation&#xff09;源网络地址转换 SNAT流程 确定性标记 DNAT&#xff08;Destination Network Address Translation&#xff0c;目标网络地址转换&#xff09; NAT技术重要性 前言 本博客是博主用于…

15 Python进阶: random和pyecharts

Python random 模块主要用于生成随机数。 random 模块实现了各种分布的伪随机数生成器。 要使用 random 函数必须先导入&#xff1a; import randompython random 模块的一般用法 Python中的random模块提供了生成伪随机数的功能&#xff0c;可以用于模拟、游戏开发、密码学…

【Spring Boot 源码学习】SpringApplication 的 run 方法核心流程介绍

《Spring Boot 源码学习系列》 SpringApplication 的 run 方法核心流程介绍 一、引言二、往期内容三、主要内容3.1 run 方法源码初识3.2 引导上下文 BootstrapContext3.3 系统属性【java.awt.headless】3.4 早期启动阶段3.5 准备和配置应用环境3.6 打印 Banner 信息3.7 新建应用…

Blender表面细分的操作

在使用Blender的过程中,刚开始创建的模型,都会比较少面,这样操作起来比较流畅,减少电脑的计算量,当设计快要完成时,就会增加表面细分,这样更加圆滑,看起来更加顺眼。 比如创建一个猴头,它会默认显示如下: 从上图可以看到,有一些表面会比较大,棱角很多。 这时候你…

win11如何重新安装应用商店,怎么重装应用商店

win11系统内置了应用商店&#xff0c;相当于手机的应用商城&#xff0c;用户们想要下载软件时&#xff0c;就会前往应用商店搜索下载。如果我们因为误操作&#xff0c;删除了win11应用商店&#xff0c;或者是应用商店出现闪退、卡顿等问题&#xff0c;这个时候&#xff0c;最好…

MyBatis-Spring整合

引入Spring之前需要了解mybatis-spring包中的一些重要类&#xff1b; http://www.mybatis.org/spring/zh/index.html 什么是 MyBatis-Spring&#xff1f; MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 知识基础 在开始使用 MyBatis-Spring 之前&#x…

Python学习笔记23 - 目录操作

os模块操作目录相关函数 os.path模块操作目录相关函数 案例1 —— 列出指定目录下的所有.py文件 案例2 —— walk()

内网渗透-红队内网渗透工具(Viper)

红队内网渗透工具(Viper) 最近发现一款很强大的内网渗透工具Viper 接下来我给大家介绍一下具体的安装过程&#xff0c;这里我在kali上进行安装 &#xff08;1&#xff09;首先打开kali终端&#xff0c;切换到root用户,确认以下操作都在root用户下操作&#xff0c;sudo -s 安装…