当多个作业时,GNU使目标顺序

时间:2019-06-03 07:06:47

标签: makefile gnu-make

我有makefile all: clean $(binary_output_path)/$(target_executable),它首先清除输出目录和构建可执行文件。问题是当我想使用-j10时:有时它会同时开始构建和清理,因此显然构建失败。 我该如何克服这个问题,并在多个内核上按顺序执行目标?

1 个答案:

答案 0 :(得分:0)

您应该添加依赖项:

$(binary_output_path)/$(target_executable): | clean

但是,完全不使用clean并不是一个好主意。只需

all: $(binary_output_path)/$(target_executable)

$(binary_output_path)/$(target_executable):先决条件

在此处写下可以建立该目标的食谱

您应该集中精力编写makefile,而无需清理。如果必须在构建可执行文件之前先进行清理,请找出原因,然后编写用于构建可执行文件的命令,使它们不管您是否已“清理”都可以使用。