gpt4 book ai didi

makefile - 制作 : disable parallel execution of some targets

转载 作者:行者123 更新时间:2023-12-03 12:03:44 26 4
gpt4 key购买 nike

我有一个编译工作,其中链接需要大量 IO 工作。我们有大约十几个核心,所以我们运行 make -j13,但是当涉及到链接 6 个目标时,我希望以循环方式完成。我考虑过让一个依赖于下一个,但我认为这会破坏单个目标。任何想法如何解决这个小问题?

最佳答案

make本身不提供一种机制来请求“其中 N 个,但一次不超过 M 个”。

您可以尝试使用 sem来自 GNU parallel 的命令打包在链接器规则的配方中。它的文档有一个 example of ensuring only one instance of a tool runs at once .在您的示例中,您将允许 make最多启动 13 sem s 一次,但一次只有一个会运行链接器,而其他人会阻止。

不利的一面是,您可能会陷入其中 5 个 make 的情况。的 13 个作业槽与 sem 的实例相关联这些都在等待链接器进程完成。根据构建的结构,这可能意味着会浪费一些 CPU 时间。尽管如此,仍然击败了 6 个链接器同时冲击磁盘:-)

关于makefile - 制作 : disable parallel execution of some targets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7150569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com