环境:
- CPU: Intel 4 Cores
- Memory: 8GB
- SUSE-SEL-15
1. 问题描述。
Build Qt5.15.0时, 编译到qtwebengine 后半段[15829/19634] 时,出现频繁卡死,系统崩溃,terminal又没有任何出错信息。top监控实时系统资源信息, 发现同时有6个ccplus 进程,每个cpu占用率达到70左右,并且总的cpu占用率达到96.8。如下图(由于死机无法截图只能拍照片)
2. 问题分析
csdn上有个很流行的方案是在 QT的pro文件里添加:CONFIG += resources_big。 尝试了,没用。由于不确定原博主是否指的是 Src/qt.pro, 结合qtwebengine/src/core 下生成Makefile.gn_run时用到的是gn_run.pro,所以也修改了gn_run.pro文件。然并卵。
3. 方案。
根据top的启示, cc1plus 起了6 个线程,每个线的cpu程资源占用率都很高,尝试降低cc1plus线程数,即改用make -j 2 编译,发现cc1plus依然是6个。为了弄清楚6个cc1plus线程是怎么起的,切换到私有工程下 make, 发现只起一个cc1plus, 改用make -j 4 发现起了4个cc1plus, 初步猜想是ninja内部自定义的。网上没找到有用的资