为什么此MakeFile规则有两个冒号?

时间:2019-11-25 20:45:24

标签: gcc makefile

$(EXEX) : main% : $(OBJS) pp%.o
    gcc $(FLAGS) $^ -o $@

我只是想了解以上内容。 据我了解,EXEX中的所有对象都是目标,将使用以下模式构建。

main,OBJS和pp.o是EXEX中的必备组件。 第二行将使用gcc和FLAGS中的所有标志作为目标文件编译$ ^(表示所有先决条件),以便构建$ @,这是EXEX的内容。必须有规则来构建所有这些-o。

我的问题是为什么会有两个冒号?这是两个规则吗? main%表示= main带有任何文件结尾吗? 为什么我们需要pp%.o中的%,在这种情况下这意味着什么?它似乎有很多目的。

1 个答案:

答案 0 :(得分:2)

这是static pattern rule。请参阅链接的GNU make文档。