当前位置: 首页 > article >正文

关于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 clean

make 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.kler.cn/a/449276.html

相关文章:

  • Vue常用指令
  • Java设计模式 —— 【结构型模式】外观模式详解
  • Mybatis分页插件的使用问题记录
  • 差分矩阵(Difference Matrix)与累计和矩阵(Running Sum Matrix)的概念与应用:中英双语
  • 矩阵:Input-Output Interpretation of Matrices (中英双语)
  • git命令恢复/还原某个文件、删除远程仓库中的文件
  • 面试题整理15----K8s常见的网络插件有哪些
  • 对于其他管理的理解(中)
  • 【Flink-scala】DataSet编程模型介绍及数据源
  • Pytorch | 从零构建ParNet/Non-Deep Networks对CIFAR10进行分类
  • 在FreeRTOS中动态创建任务,假如在最后一个参数写NULL,该任务有任务句柄吗
  • 安装管理docker
  • 重温设计模式--享元模式
  • 路由器做WPAD、VPN、透明代理中之间一个
  • CSS系列(24)-- 打印样式详解
  • 基于JAVA_JSP电子书下载系统的设计与实现【源码+文档+部署讲解】
  • 设计模式详解(十二):单例模式——Singleton
  • 如何注册和使用Facebook企业号
  • uniapp验证码
  • 数据库管理-第274期 Oracle Enterprise Manager 24ai新特性一览(20241223)
  • 使用frp进行内网穿透
  • 程控电阻箱应用中需要注意哪些安全事项?
  • Log4j简介
  • 在Excel中绘制ActiveX控件:解决文本编辑框定位问题
  • ubuntu装P104
  • 操作系统(22)外存的组织方式