关于Buildroot如何配置qtwebengine [未能成功编译]

目录

前言

下载Buildroot

如何添加qtwebengine

开始make编译

编译过程中到了这些问题


前言

问题的开始就在于学习QT的过程中遇到了一个问题…

Unknown module(s) in QT: webenginewidgets

我想要把qt的一个项目编译并发送到我的开发板上,但是qmake识别不到这个模块。

由于我是在Ubuntu的环境下操作的,所以网上关于这个问题的资料比较少,大部分只能用做参考,对于初学者来说还是挺难受的,为了解决这个问题卡了我不少的时间…

胡乱用了许多方法无果,最终想buildroot配置,把qtwebengine这个模块添加进去,最后烧写到开发板上。

可惜最终还是未能彻底解决,这里把部分问题的解决过程贴出来,后续问题希望能有大神能不吝赐教。

下载Buildroot

这里我选择的是Buildroot-2022.2.3版本。

官网地址:https://buildroot.org/

找到我们的tar包,如果你想选择其他版本也是可以的,但是配置的步骤可能跟我的不太一样,不过解决问题的思路是一致的,可以看着参照一下。

Tips:如果下载的太慢,可以复制下载链接到其他下载器,这样会快很多。

拷贝到Ubuntu的家目录下,并解压

tar xf buildroot-2022.02.3.tar.gz

如何添加qtwebengine

由于我是按照正点原子教程配置的,所以这里我只讲怎么添加qtwebengine模块,其他配置大家按自己的需求来选,如果实在不会的话看这个:【正点原子MP157连载】第十九章 Buildroot根文件系统构建-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

进入到buildroot目录下

这里我是编译过的,所以多了一个output的文件,刚下载完的目录是没有的,所以不用担心。

首先下载显示图形菜单所需要的库

sudo apt-get install libncurses5-dev

打开配置菜单

make menuconfig

简单说明一下:

用我们键盘上的↑↓←→键来操控光标,回车键选择下方的五个操作,图中尾巴里有个箭头的就是目录,目录里面某个选项前 [ ] 表示未选中,**[ * ]**表示选中,按键盘上的 **“Y”选中、“N”**取消选中,详情看图上面那几行英文。

进入到Target packages目录中:

Target packages —>

Graphic libraries and applications(graphic/text) —>

[ * ] Qt5 —>

[ *] qt5webengine

[ *] proprietary codecs

选择这俩就可以了。

当然没有这么简单,实际情况应该是…

我们选中不了qt5webengine,这里提示说明了这个模块所需要的配置和依赖

先退回到上一个目录,找到mesa3d,进入并选中两个OpenGL

Target packages —>

Graphic libraries and applications(graphic/text) —>

[ * ] mesa3d —>

[ * ] OpenGL EGL

[ * ] OpenGL ES

退回到初始目录,进入Toolchain

Toolchain —>

C library (glibc) —>

(X) glibc

再退回到初始目录,进入System configuration,打开**/dev management**选择最后一项

System configuration —>

/dev management —>

(X) Dynamic using devtempfs + eudev

都搞定后回到Qt5的目录下看看,这下可以选择qt5webengine模块了!

保存Save,退出

开始make编译

编译需要占用的内存比较多,看一下自己的内存是否充足

free -h

为避免出现不必要的麻烦,我建议编译前增加一下自己的交换分区,跟着这篇文章做一遍:在make编译时,出现C++: fatal error:已杀死 signal terminated program cc1plus,解决办法

再查看一下分区的情况

df -h

我之前预留了10G都不够,导致开不了机,最后只能删掉编译的文件重新来过了…

Ubuntu空间不足,如何扩容(超详细讲解)

准备工作做好后开始编译

sudo make

花了我一晚上的时间终于!

呵呵,还是没能成功,编译日志如下:

编译中断:ninja: build stopped: subcommand failed.

这个问题我找不到有效的解决办法,这一篇情况跟我很像:Unable to build dev-qt/qtwebengine-5.15.2_p20210224 (SOLVED)

此时我的内存使用情况:

等我找到解决办法再更新吧,哎…

编译过程中遇到了这些问题

1.WARNING: unmet direct dependencies detected for BR2_PACKAGE_HOST_NODEJS

上述警告表明我们缺少BR2_PACKAGE_HOST_NODEJS

只需要选择相应的PACKAGE包就可以了。

我们先清除make产生的文件,再进入配置

sudo make cleanmake menuconfig

进入图形化配置界面后按键盘上的**“ /进入搜索,把BR2_PACKAGE_HOST_NODEJS**复制上去,得到如下结果

名称:host nodejs

位置:Host utilities

Host utilities —>

-*- host nodejs

如果你的编译器低于8的话会提示host nodejs needs a host gcc >= 8

退出,安装版本大于等于8的编译器:如何在 Ubuntu 18.04 上升级 gcc 到 9.4:一步步详细指南

2.Your Buildroot configuration needs a compiler capable of building 32 bits binaries.
If you’re running a Debian/Ubuntu distribution, install the g+±multilib package.
For other distributions, refer to their documentation.
support/dependencies/dependencies.mk:27: recipe for target ‘dependencies’ failed
make: *** [dependencies] Error 1

这个问题就是缺少g+±multilib,下载完gcc-9g+±9后执行如下命令

sudo apt install g++-9-multilib gcc-9-multilib

然后继续make

sudo make

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

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

相关文章

SNP与Scheer合作助力Warsteiner Brauerei成功升级至SAP S/4HANA

德国软件和咨询公司SNP是SAP环境中数字化转型、自动化数据迁移和数据管理软件的知名提供商,再次与德国Scheer公司合作,Scheer公司是一家专门从事业务流程管理和SAP咨询的咨询公司。他们为家族企业Warsteiner Brauerei Haus Cramer KG向SAP S/4HANA升级转…

Apache Samza开源的分布式流处理框架

Apache Samza 是一个开源的分布式流处理框架,用于处理实时数据流和分布式任务。它最初由 LinkedIn 开发,并在 2014 年捐赠给 Apache 软件基金会。Samza 的设计目标是为开发人员提供一个易用、可靠、高效的流处理工具。以下是其关键特点和架构的简介: 核心特点 简单的编程模…

【Super Tilemap Editor使用详解】(五):图块调色板

1、图块调色板(Tile Palette)可以在以下位置找到: Tileset Inspector检视面板 STETilemap Inspector检视面板,并选择 "Paint" 选项卡 Tile Palette 窗口:"SuperTilemapEditor/Window/Tile Palette Win…

LNMP+discuz论坛

0.准备 文章目录 0.准备1.nginx2.mysql2.1 mysql82.2 mysql5.7 3.php4.测试php访问mysql5.部署 Discuz6.其他 yum源: # 没有wget,用这个 # curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo[rootlocalhost ~]#…

kylinos如何使用udev修改网卡名称

在KylinOS中使用udev修改网卡名称可以按照以下步骤进行操作: 查看网卡信息 在终端中输入ip a或ifconfig -a命令,查看当前系统中的网卡设备及其MAC地址等信息,记录要修改名称的网卡的MAC地址。创建udev规则文件 以root用户身份或使用sudo权限创建一个udev规则文件。可以在/e…

TRELLIS,一键生成3D模型,图像转3D,微软开源

大家好!今天给大家分享微软最近开源的一个3D模型生成项目——TRELLIS。简单来说就是输入一张图片,它就能自动帮你生成3D模型。这与之前分享的TripoSR项目类似,但是精度和贴图细节比TripoSR要高很多。 好久没关注AI生成3D模型这块,…

ios swift 开发系列--如何把粤语转语音

在Swift中,我们可以使用AVSpeechSynthesizer进行文本到语音的转换,我们通过设置AVSpeechUtterance的voice属性来指定朗读的语言和口音。 要确保朗读的是粤语,我们应该使用一个特定的语言代码,例如"zh-Hant-HK"&#xf…

开源架构学习指南:文档与资源的智慧锦囊

开源架构学习指南:文档与资源的智慧锦囊 一、引言二、开源架构文档的核心价值剖析(一)知识传承与共享:智慧的薪火相传1. 经典案例:Linux 内核文档 —— 开源世界的智慧基石 (二)促进协作与沟通&…

景联文科技:精准语音标注,驱动语音技术新发展

在人工智能迅速发展的今天,语音技术的应用已经渗透到我们生活的方方面面。从智能音箱、语音助手到自动语音识别系统,高质量的语音数据是这些应用成功的关键。景联文科技作为领先的AI数据服务提供商,专注于为客户提供高精度、高效的语音标注服…

HTTP接口报错详解与解决 200,500,403,408,404

前言: 仅做学习记录,侵删 背景 当后端编写接口时,经常需要对接口使用ApiFox或者PostMan进行测试,此时就会出现各种各样的报错,一般都会包括报错编码:200,400,401等。这个状态码一般是服务器所返回的包含…

视频生成缩略图

文章目录 视频生成缩略图使用ffmpeg 视频生成缩略图 最近有个需求&#xff0c;视频上传之后在列表和详情页需要展示缩略图 使用ffmpeg 首先引入jar包 <dependency><groupId>org.bytedeco</groupId><artifactId>javacpp</artifactId><vers…

如何保证开源AI呼入机器人和AI呼出机器人的服务质量?

如何保证开源AI呼入机器人和AI呼出机器人的服务质量&#xff1f; 确保开源AI呼入机器人和AI呼出机器人的服务质量是企业成功部署这些智能系统的关键。高质量的服务不仅能够提高客户满意度&#xff0c;还能增强企业的市场竞争力。以下是实现这一目标的几个关键策略和技术措施&a…

Oracle创建逻辑目录

Oracle 在执行逻辑备份及还原时&#xff0c;需要用到逻辑目录。 本文就来简单介绍一下逻辑目录相关的操作&#xff0c;希望对大家有所帮助。 ‌1.登录到Oracle数据库‌ 使用具有足够权限的数据库用户登录到Oracle数据库。通常&#xff0c;这需要是管理员账号&#xff0c;如SYS…

NVIDIA发布紧凑型生成式AI超级计算机:性能提升,价格更低

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

模仿elementui的Table,实现思路

vue2子组件使用render&#xff0c;给子子组件插槽传值 和elementui的Table一样使用render 在 Vue 2 中&#xff0c;子组件使用render函数向子子组件插槽传值可以通过以下步骤实现&#xff1a; 1、创建子组件 首先创建一个子组件&#xff0c;在子组件中使用render函数来渲染内容…

管理系统、微信小程序类源码文档-哔哩哔哩教程同步

文章目录 前言通用表基于JavaSpringBootVue前后端分离手机销售商城系统设计实现:基于JavaSpringBootVueuniapp实现大学生校园兼职微信小程序 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘…

python进程和线程:多进程

在Python中&#xff0c;多进程是一种并行执行任务的手段&#xff0c;通过创建多个进程来同时运行多个任务&#xff0c;从而提高程序的执行效率。Python提供了multiprocessing模块来实现多进程。下面是一些关于Python多进程的基本概念和用法。 基本概念 进程&#xff08;Proce…

对象的状态变化处理与工厂模式实现

一、引言 在 C 编程中&#xff0c;有效地处理对象的状态变化以及合理运用设计模式可以极大地提高代码的可维护性、可扩展性和可读性。本文将深入探讨 C 如何处理对象的状态变化以及如何实现工厂模式。 二、C 中对象的状态变化处理 使用成员变量表示状态 class GameCharacte…

upload-labs(1-19关)通关攻略

Pass-01 本关思路&#xff1a;删除前端js校验 进入第一关环境 桌面新建一个php文件&#xff0c;命名为1.php <?php eval($_POST[a]);?> 我们上传此文件&#xff0c;发现不允许上传&#xff0c;且页面没有变化&#xff0c;说明前端进行了拦截 这时我们打开 F12 &…

【开源库 | minizip】Linux(Ubuntu18.04)下,minizip的编译、交叉编译

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 2024-12-20 …