You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Makefile中配置实现两个make伪目标并行执行?

解决方案

方案1:递归调用make(兼容性最优,不影响其他目标执行逻辑)

这是最推荐的实现方式,仅在执行make watch时启用并行,不会改变其他目标的默认执行规则:

.PHONY: watch_css1
watch_css1:
    @(sass --watch foo1.scss:foo1.css)

.PHONY: watch_css2
watch_css2:
    @(sass --watch foo2.scss:foo2.css)

.PHONY: watch
watch:
# 调用make自身并携带并行参数,无需手动输入
	@$(MAKE) -j watch_css1 watch_css2

这里-j不带数值的写法会让make自动匹配子目标数量开启并行,后续新增监听任务不需要修改参数值。

方案2:全局配置MAKEFLAGS(不推荐,会影响所有目标)

如果可以接受所有make任务默认并行,可在Makefile开头全局添加配置:

MAKEFLAGS += -j2
# 后续接原有Makefile内容

注意:该配置会全局生效,若项目存在有依赖顺序要求的编译任务,可能会出现执行顺序错乱导致的失败问题。

内容的提问来源于stack exchange,提问作者Milad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:45:03