【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 所依赖的外部库,缺少其中任何一个都可能导致构建失败。根据输出,你需要安装以下系统库:
- fontconfig: 字体配置库,用于处理字体相关的任务。
- dbus: D-Bus 是 Linux 桌面应用程序之间进行通信的消息总线系统。
- nss(Network Security Services): 用于支持网络安全的库。
- khr: 应该是指 Khronos Group 的相关库,可能与 OpenGL 或 Vulkan 相关。
- 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参数解释(最新版本)
相关文章:
【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.相关依赖(如果需要的话) 先参考官方文档的需求进行安装: 官方…...
vue简单使用二(循环)
目录 属性绑定 if判断: for循环: 属性绑定 代码的形式来说明 三元表达式的写法: if判断: for循环: 完整代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"…...
JavaScript入门--变量
JavaScript入门--变量 一、JS变量二、变量命名三、常量四、局部变量 一、JS变量 定义变量a, b, c,并输出到控制台。 var a 1; var b 13.14; var c hello Js;console.log(a, b, c) //console.log()语句用于输出结果到控制台,类似python的print语句…...
给自己的机器人部件安装单目摄像头并实现gazebo仿真功能
手术执行器添加摄像头 手术执行器文件夹surgical_new内容展示如何添加单目摄像头下载现成的机器人环境文件启动仿真环境 手术执行器文件夹surgical_new内容展示 进入src文件夹下选择进入vision_obliquity文件夹 选择launch 有两个可用gazebo中rviz展示的launch文件࿰…...
用AI的视角看世界
前言 2024年将是Ai人工智能在各个行业垂直领域发展的元年。 随着2022年11月openai 的大语言模型chatgpt3.5的诞生,已经预示着互联网时代,移动互联网时代即将迎来新的变革,也预示着web3.0和元宇宙更近了一步。 回顾历史,互联网的…...
MATLAB 自定义实现点云法向量和曲率计算(详细解读)(64)
MATLAB 自定义实现点云法向量和曲率计算(详细解读)(64) 一、算法介绍二、算法步骤三、算法实现1.代码 (完整,注释清晰,可直接用)2.结果一、算法介绍 首先说明: ------这里代码手动实现,不调用matlab提供的法向量计算接口,更有助于大家了解法向量和曲率的计算方法,…...
拯救鲨鱼!Helping wireshark!wireshark未响应解决方法
前言 做题的的时候 在用wireshark解密tls秘钥的时候 我的小鲨鱼突然未响应了 然后我多次尝试无果 并且殃及池鱼 我电脑上所有的流量包都打不开了?!!! 于是乎 尝试删了重下 还是未响应 开始怀疑电脑 重启电脑两次 还是打…...
设计模式之责任链讲解
责任链模式适用于需要将请求和处理解耦的场景,同时又需要动态地组织处理逻辑的场景。 通过使用责任链模式,可以实现请求的动态处理、灵活的扩展和简化的代码编写,提高系统的可维护性和可扩展性。 一、责任链入门 以下这是GPT生成的责任链代…...
K8s: 将一个节点移出集群和相关注意事项
前置步骤 在Kubernetes集群中,要移出一个节点,你需要执行以下步骤: 1 )将节点标记为不可调度 首先,你需要将目标节点标记为不可调度,以确保Kubernetes不会在该节点上调度新的Pod这可以通过执行以下命令实…...
Python学习笔记24 - 学生信息管理系统
1. 需求分析 2. 系统设计 3. 系统开发必备 4. 主函数设计 5. 学生信息维护模块设计 a. 录入学生信息 b. 删除学生信息 c. 修改学生信息 d. 查询学生信息 e. 统计学生总人数 f. 显示所有学生信息 g. 排序模块设计 6. 项目打包...
【物联网应用案例】某制造企业电锅炉检测项目
供暖行业在我国的经济发展中占据着重要的地位,然而,长期以来,该行业存在着自动化水平低、管理效率不高等问题,制约了其持续发展。为了解决这些问题,吉林某电锅炉生产厂家进行了一项创新性的尝试。 该厂家通过集成物联…...
设计模式实践
结合设计模式概念和在java/spring/spring boot中的实战,说明下列设计模式。 一、工厂模式 这里只讲简单工厂模式,详细的可以参考Java工厂模式(随笔)-CSDN博客。工厂类会根据不同的参数或条件来决定创建哪种对象,这样…...
嵌入式学习52-ARM1
知识零散: 1.flash: nor flash 可被寻地址 …...
Java(MySQL基础)
数据库相关概念 MySOL数据库 关系型数据库(RDBMS) 概念: 建立在关系模型基础上,由多张相互连接的二维表组成的数据库。特点: 使用表存储数据,格式统一,便于维护使用SQL语言操作,标准统一,使用方便 SQL SOL通用语法…...
预约系统的使用
预约系统的使用 目录概述需求: 设计思路实现思路分析1.用户年规则 在 预约系统中的使用流程 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wa…...
酷开科技OTT大屏营销:开启新时代的营销革命
随着互联网技术的不断发展和普及,大屏已经成为越来越多家庭选择的娱乐方式。在这个背景下,酷开科技凭借其强大的技术实力和敏锐的市场洞察力,成功地将大屏转化为一种新的营销渠道,为品牌和企业带来了前所未有的商业机会。 酷开科技…...
网络安全(防火墙,IDS,IPS概述)
问题一:什么是防火墙,IDS,IPS? 防火墙是对IP:port的访问进行限制,对访问端口进行制定的策略去允许开放的访问,将不放开的端口进行拒绝访问,从而达到充当防DDOS的设备。主要是拒绝网络流量,阻断所有不希望出现的流程,禁止数据流量流通,达到安全防护的作用。如将一些恶…...
安装IntelliJ IDEA插件教程
安装IntelliJ IDEA插件:一份详细指南 在提升IntelliJ IDEA开发效率的过程中,插件扮演着不可或缺的角色。它们为IDE提供了额外的功能和工具,以满足开发者在特定编程语言、框架、测试、版本控制等方面的个性化需求。本文将为您详细阐述如何在I…...
大厂基础面试题(之四)
Q1:请先进行自我介绍 Q2:说下你学习前端的详细过程 Q3:一个页面从url输入到显示页面的整个过程 1.URL解析 2.DNS解析 3.建立TCP连接 4.发起HTTP请求 5.服务器处理请求 6.返回HTTP响应 7.下载页面资源 8.解析和渲染页面 9.JavaScript执行 10…...
为什么我们应该切换到Rust
What is RUST? 什么是Rust? Rust is a programming language focused on safety, particularly safe concurrency, supporting functional and imperative-procedural paradigms. Rust is syntactically similar to C, but it provides memory safety without usi…...
基于Linux定时任务实现的MySQL周期性备份
1、创建备份目录 sudo mkdir -p /var/backups/mysql/database_name2、创建备份脚本 sudo touch /var/backups/mysql/mysqldump.sh# 用VIM编辑脚本文件,写入备份命令 sudo vim /var/backups/mysql/mysqldump.sh# 内如如下 #!/bin/bash mysqldump -uroot --single-…...
【Altium Designer 20 笔记】隐藏PCB上的信号线(连接线)
使用网络类隐藏特定类型的信号线 如果你想要隐藏特定类型的信号线(例如电源类),你可以首先创建一个网络类。使用快捷键DC调出对象类浏览器,在Net Classes中右击添加类,并重命名(例如为“Power”࿰…...
【Git教程】(九)版本标签 —— 创建、查看标签,标签的散列值,将标签添加到日志输出中,判断标签是否包含特定的提交 ~
Git教程 版本标签(tag) 1️⃣ 创建标签2️⃣ 查看存在的标签3️⃣ 标签的散列值4️⃣ 将标签添加到日志输出中5️⃣ 判断tag是否包含特定的提交🌾 总结 大多数项目都是用 1.7.3.2和 “ gingerbread” 这样的数字或名称来标识软件版本的。在 …...
MemberPress配置和使用会员登录页面
目录 隐藏 创建会员登录页面 编辑登录页面 设计您的登录页面 链接到您的登录页面 创建会员登录页面 要创建MemberPress会员登录页面,您需要做的就是导航到 MemberPress > 设置 > 页面选项卡,然后在页面顶部附近的“MemberPress 登录页面”…...
分享一个预测模型web APP的功能模块和界面的设计
一个临床预测模型web APP功能模块与界面设计 随着医疗技术的不断进步,web APP是临床预测模型在医学领域的应用的重要形式。这里分享一个web APP的设计,手里有医学预测模型的可以尝试将其构建成webAPP,进而在临床实践中体验预测模型带来的便利…...
智慧公厕是智慧城市建设中不可或缺的一部分
智慧城市的数字化转型正在取得显著成效,各项基础设施的建设也在迅速发展,其中智慧公厕成为了智慧城市体系中不可或缺的一部分。作为社会生活中必要的设施,公共厕所的信息化、数字化、智慧化升级转型能够实现全区域公共厕所管理的横向打通和纵…...
leetcode热题100.爬楼梯(从二进制到快速幂)
Problem: 70. 爬楼梯 文章目录 题目思路Code复杂度 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方…...
使用Docker定时备份数据
文章目录 一、Docker镜像制作二、MySQL数据备份三、Minio数据备份四、数据跨服务器传输五、Nginx日志分割六、Docker启动七、Docker备份日志 一、Docker镜像制作 镜像制作目录 mc下载地址 - rsyncd.conf # https://download.samba.org/pub/rsync/rsyncd.conf.5port 873 uid …...
conda搭建与管理python环境
conda搭建与管理python环境.md Anaconda下载地址Miniconda下载地址Linux下安装1.执行安装2.查看可安装的python版本3.创建环境4.激活环境5.安装python的工具包5.退出环境6.删除指定的环境7.设置默认的环境 Window下安装1.执行安装2.配置环境变量3.检查是否安装成功4.通过conda配…...
获取当前的年、月、日、时、分、秒,并将这些信息用作保存 Excel 文件的前缀
要获取当前的年、月、日、时、分、秒,并将这些信息用作保存 Excel 文件的前缀,你可以使用 Python 的 datetime 模块来获取当前时间,并格式化时间字符串,然后使用 pandas 库将数据保存为 Excel 文件。示例代码: from d…...
建筑案例网站有哪些/上海企业网站推广
不知道什么原因,Zenoss官方的文档中似乎没有涉及到国际化方面的内容,本文对如何对Zenoss如何汉化做个简单的总结 基本汉化 http://code.google.com/p/zenforge/wiki/ZenossI18n 这里包含了基本的汉化包,该汉化包完成了60%左右的汉化工作,这…...
做网站怎么这么贵/做整站优化
最近更新的博客 【新解法】华为OD机试 - 关联子串 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试 - 停车场最大距离 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试 - 任务调度 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试…...
慈溪做网站公司/线下推广渠道有哪些方式
http://www.putty.ws/Putty-wanquanshiyong putty中文站 转载于:https://www.cnblogs.com/kex1n/p/5088531.html...
韩国购物网站有哪些/网站关键词优化推广哪家快
1 你必须知道的TMS320C6000启动过程 这部分内容在我的另一篇博客 DSP TMS320C6000基础学习(7)—— Bootloader与VectorTable 有提到过,这里重新摘录一遍。 如上图 在Device Reset阶段:设备初始化为默认状态,大部分三态…...
网上申请注册公司应该怎么办理/佛山市seo推广联系方式
linux下php增加openssl.so模块切换到php安装目录的etx/openssl目录cd /home/tao/soft/php-5.2.13/ext/opensslopenssl目录下有个config.w32和config0.m4,把config0.m4改名为config.m4(原因不解释)mv config0.m4 config.m4$PHP_PREFIX/bin/phpize或直接/usr/local/ph…...
打开网站说建设中是什么问题?/磁力搜索器 磁力猫在线
文章目录1. 什么是逃逸分析2. 作用3. 栈上分配4. 栈上分配示例1. 什么是逃逸分析 逃逸分析(Escape Analysis)是目前Java虚拟机中比较前沿的优化技术。 逃逸分析的基本原理是:分析对象动态作用域,当一个对象在方法里面被定义后&a…...