首页 > 解决方案 > 使用 % 的 makefile 目标顺序

问题描述

只是出于好奇,在makefile中执行目标的顺序是什么

${OBJ_DIR}/%.o: ${SRC_DIR}/%.cpp

我注意到它不是字典式的(如ls -l)。它只是随机的吗?

标签: makefile

解决方案


它们是按照 make 遍历先决条件图的顺序构建的。

在您没有并行作业(没有-j选项)的简单情况下,如果您有如下目标:

prog: foo.o bar.o. baz.o

make 将首先尝试构建foo.o,然后bar.o,然后baz.o,最后prog

如果您确实启用了并行作业,那么 make 仍会尝试以相同的顺序开始构建,但由于某些构建完成得比其他构建更快,您可能会同时构建不同的目标。


推荐阅读