如何解决使[1]:***读取作业管道:资源暂时不可用停止
我遇到了一段时间这个问题:
make [1]: *** read jobs pipe: Resource temporarily unavailable. Stop.
我有一个顶层makefile,可以“调用”其他cmake并根据规则进行make。
target A
是一个相对较小的代码(C / C ++)。 target B
更大。
问题主要发生在建筑物target B
期间,但并非总是如此。我使用make 3.82。
我尝试过使用make 4.3,它总是会发生。
这是我的构建系统的骨架:
MAKEFLAGS = --jobs=10 --max-load=20
<target A>:
+. /usr/share/Modules/init/bash &&
module load <target> &&
cmake --build <project buildsystem> --target <target A>
<target B>: <target A>
+. /usr/share/Modules/init/bash &&
module load <target> &&
make -C <path> <target B> &&
cmake --build <project buildsystem> --target <target B>
/usr/share/Modules/init/bash
当将特定于外壳的初始化脚本输入到外壳中时,将初始化Modules软件包和module命令。该脚本将模块命令创建为别名或函数,并创建模块环境变量。
https://modules.readthedocs.io/en/latest/module.html
({--max-load
等于构建服务器上的内核数。--jobs
是构建服务器的一半。)
我已正确验证MAKEFLAGS
通过(在构建过程中检查了gcc / g ++进程的数量),并且不收到此警告:
warning: -jN forced in submake: disabling jobserver mode.
主机操作系统:RedHat 7.6
cmake:3.16.4
我该如何解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。