科技颠覆者 发表于 2025-1-20 15:58:40

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

目录
媒介
下载Buildroot
如何添加qtwebengine
开始make编译
编译过程中到了这些问题
媒介

问题的开始就在于学习QT的过程中遇到了一个问题…
https://i-blog.csdnimg.cn/direct/3aba3548e87f4c5a932d0571d399b15e.jpeg
Unknown module(s) in QT: webenginewidgets

我想要把qt的一个项目编译并发送到我的开发板上,但是qmake识别不到这个模块。
由于我是在Ubuntu的环境下操作的,所以网上关于这个问题的资料比较少,大部门只能用做参考,对于初学者来说还是挺难熬的,为相识决这个问题卡了我不少的时间…
胡乱用了许多方法无果,终极想buildroot设置,把qtwebengine这个模块添加进去,末了烧写到开发板上。
惋惜终极还是未能彻底办理,这里把部门问题的办理过程贴出来,后续问题盼望能有大神能不吝赐教。
下载Buildroot

这里我选择的是Buildroot-2022.2.3版本。
官网地址:https://buildroot.org/
https://i-blog.csdnimg.cn/direct/3fbc10007f0746b2afa40b03b4c833f2.png
https://i-blog.csdnimg.cn/direct/91468d390e734b7e88e47db218f5a7a6.png
https://i-blog.csdnimg.cn/direct/8d74ece32338450798f5936ae978b1fa.png
找到我们的tar包,如果你想选择其他版本也是可以的,但是设置的步骤大概跟我的不太一样,不过办理问题的思绪是划一的,可以看着参照一下。
Tips:如果下载的太慢,可以复制下载链接到其他下载器,这样会快许多。
拷贝到Ubuntu的家目录下,并解压
tar xf buildroot-2022.02.3.tar.gz
如何添加qtwebengine

由于我是按照正点原子教程设置的,所以这里我只讲怎么添加qtwebengine模块,其他设置各人按本身的需求来选,如果实在不会的话看这个:【正点原子MP157连载】第十九章 Buildroot根文件系统构建-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
进入到buildroot目录下
https://i-blog.csdnimg.cn/direct/d5b324535feb4629b99b09a275e4b837.png
这里我是编译过的,所以多了一个output的文件,刚下载完的目录是没有的,所以不用担心。
首先下载显示图形菜单所需要的库
sudo apt-get install libncurses5-dev
打开设置菜单
make menuconfig
简单说明一下:
用我们键盘上的↑↓←→键来操控光标,回车键选择下方的五个操作,图中尾巴里有个箭头的就是目录,目录里面某个选项前 [ ] 表示未选中,**[ * ]**表示选中,按键盘上的 **“Y”选中、“N”**取消选中,详情看图上面那几行英文。
https://i-blog.csdnimg.cn/direct/0e0d1c79f45a4f4cbee08b24bb46b25f.png
进入到Target packages目录中:
Target packages —>
Graphic libraries and applications(graphic/text) —>
[ * ] Qt5 —>
[ *] qt5webengine
[ *] proprietary codecs
选择这俩就可以了。
当然没有这么简单,现实环境应该是…
https://i-blog.csdnimg.cn/direct/01cb6262f78444c2b5e4b05408cc3a76.png
我们选中不了qt5webengine,这里提示说明白这个模块所需要的设置和依赖
先退回到上一个目录,找到mesa3d,进入并选中两个OpenGL
Target packages —>
Graphic libraries and applications(graphic/text) —>
[ * ] mesa3d —>
[ * ] OpenGL EGL
[ * ] OpenGL ES
https://i-blog.csdnimg.cn/direct/1c5578d3ba0942f29eda3af538f6cc7e.png
退回到初始目录,进入Toolchain
Toolchain —>
C library (glibc) —>
(X) glibc
https://i-blog.csdnimg.cn/direct/07853affdbba4fba8fb6947945698dc9.png
再退回到初始目录,进入System configuration,打开**/dev management**选择末了一项
System configuration —>
/dev management —>
(X) Dynamic using devtempfs + eudev
都搞定后回到Qt5的目录下看看,这下可以选择qt5webengine模块了!
https://i-blog.csdnimg.cn/direct/2de4e72e52054000ba6709c96ff4dce8.png
保存Save,退出
开始make编译

编译需要占用的内存比较多,看一下本身的内存是否充足
free -h
为制止出现不必要的麻烦,我建议编译前增加一下本身的交换分区,跟着这篇文章做一遍:在make编译时,出现C++: fatal error:已杀死 signal terminated program cc1plus,办理办法
再查看一下分区的环境
df -h
https://i-blog.csdnimg.cn/direct/a7c12a755b12444aa8f69e56c8092a4e.png
我之前预留了10G都不够,导致开不了机,末了只能删掉编译的文件重新来过了…
Ubuntu空间不敷,如何扩容(超具体讲授)
准备工作做好后开始编译
sudo make


花了我一晚上的时间终于!
呵呵,还是没能成功,编译日记如下:
https://i-blog.csdnimg.cn/direct/5d798aea7b77480a93ba4d98299894f3.png
编译制止:ninja: build stopped: subcommand failed.
这个问题我找不到有效的办理办法,这一篇环境跟我很像:Unable to build dev-qt/qtwebengine-5.15.2_p20210224 (SOLVED)
https://i-blog.csdnimg.cn/direct/5af92e6f5ba0443d894956bf2790b4b6.png
此时我的内存使用环境:
https://i-blog.csdnimg.cn/direct/57d121c15ca74b7ca58c01acaaf689af.png
等我找到办理办法再更新吧,哎…
编译过程中遇到了这些问题

1.WARNING: unmet direct dependencies detected for BR2_PACKAGE_HOST_NODEJS

https://i-blog.csdnimg.cn/direct/5a5ed3eb988d4f08b36283855eec03ff.jpeg
上述告诫表明我们缺少BR2_PACKAGE_HOST_NODEJS
只需要选择相应的PACKAGE包就可以了。
我们先清除make产生的文件,再进入设置
sudo make

cleanmake menuconfig
进入图形化设置界面后按键盘上的**“ / ”进入搜索,把BR2_PACKAGE_HOST_NODEJS**复制上去,得到如下效果
https://i-blog.csdnimg.cn/direct/cef53b3b80084372abb3c2af7d530805.png
名称:host nodejs
位置:Host utilities
Host utilities —>
-*- host nodejs
如果你的编译器低于8的话会提示host nodejs needs a host gcc >= 8
退出,安装版本大于等于8的编译器:如安在 Ubuntu 18.04 上升级 gcc 到 9.4:一步步具体指南
https://i-blog.csdnimg.cn/direct/cb59b66df9754955a491e1812212e494.png
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: *** Error 1

这个问题就是缺少g+±multilib,下载完gcc-9和g+±9后执行如下命令
sudo apt install g++-9-multilib gcc-9-multilib
然后继续make
sudo make


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 关于Buildroot如何设置qtwebengine [未能成功编译]