龙空技术网

记一次关于gentoo qtwebengine编译失败的处理过程

java程序人生 195

前言:

现在大家对“编译失败”大概比较看重,小伙伴们都想要知道一些“编译失败”的相关资讯。那么小编在网摘上搜集了一些有关“编译失败””的相关知识,希望姐妹们能喜欢,朋友们一起来学习一下吧!

一次常规的emerge -avuDN @world引发了此次故障

环境:

chengjian@gentoo ~ $ screenfetch  -/oyddmdhs+:. chengjian@gentoo -odNMMMMMMMMNNmhy+-` OS: Gentoo  -yNMMMMMMMMMMMNNNmmdhy+- Kernel: x86_64 Linux 4.14.83-gentoo `omMMMMMMMMMMMMNmdmmmmddhhy/` Uptime: 1h 5m omMMMMMMMMMMMNhhyyyohmdddhhhdo` Packages: 851.ydMMMMMMMMMMdhs++so/smdddhhhhdm+` Shell: bash oyhdmNMMMMMMMNdyooydmddddhhhhyhNd. Resolution: 1920x1080 :oyhhdNNMMMMMMMNNNmmdddhhhhhyymMh DE: KDE 5.52.0 / Plasma 5.14.5 .:+sydNMMMMMNNNmmmdddhhhhhhmMmy WM: KWin /mMMMMMMNNNmmmdddhhhhhmMNhs: GTK Theme: Breeze [GTK2/3] `oNMMMMMMMNNNmmmddddhhdmMNhs+` Icon Theme: breeze `sNMMMMMMMMNNNmmmdddddmNMmhs/. Font: Noto Sans Regular /NMMMMMMMMNNNNmmmdddmNMNdso:` CPU: Intel Core i7-2760QM @ 8x 3.5GHz [51.0°C]+MMMMMMMNNNNNmmmmdmNMNdso/- GPU: intelyMMNNNNNNNmmmmmNNMmhs+/-` RAM: 5026MiB / 31999MiB/hMMNNNNNNNNMNdhs++/-` `/ohdmmddhys+++/:.`  `-//////:--.

机器内存还够所以我就没有加swap空间

PS:请原谅我的老机器(ThinkPad W520),我觉得还能再战三年

在更新系统的时候就剩下最后一个大家伙qtwebengine,大家都知道编译这个需要花很长时间,但是在经历了两小时的编译机器死机了。最开始我以为是出现了啥异常情况,就重复编译了几次结果每次都是死机,每次都是强制关闭电源。

因为一开始我忘记了配置portage的日志功能所以一直没有编译日志,所以就没有定位到编译错误原因,然后就先开始百度:gentoo qtwebengine fails

发现编译qtwebengine出问题的还是很多嘛,其中一篇引起了我的注意:

dev-qt/qtwebengine-5.11.1 fails to build

因为我升级的qtwebengine版本是5.11.3跟他差不多所以我重点看了这篇,里面有答主说了

The most popular issue while building the Qt WebEngine seems to be insufficient amount of RAM

if adding RAM is not feasible: lower MAKEOPTS or add swap, though dipping into swap may prove to be slower than lowering MAKEOPTS.

意思就是造成编译失败很有可能是由于内存容量的原因造成的,有一个解决办法是降低MAKEOPTS大小。因为我看到提问的人最终解决了这个问题,就是通过修改MAKEOPTS解决。

With MAKEOPTS=”-j4 -l4” build is ok ! It’s was a memory problem. Thx for the help !

所以我也就先尝试一下,因为机器是8核,所以我的MAKEOPTS设置的是8,因此我将MAKEOPTS修改为-j4 -l4又尝试了编译。

oops,继续死机!!!无奈,继续我的电源大法。这次终于记起来把portage的log配置了,然后不信邪死马当活马医,MAKEOPTS=”-j2 -l2”,合上屏幕回家,晚上想起来就看看有没有继续死机,远程ssh回来发现居然编译成功了!!所得寺内!!

这里提醒大家,当编译qtwebengine失败的时候尝试修改一下MAKEOPTS参数,可能会有意外惊喜哦!回头给大家写一个添加portage日志配置的文档,非常非常简单。

标签: #编译失败