Makefile规则定义中的分号

Ste*_*sku 15 makefile

我在Makefile中看到许多规则如下所示:

$(PATH)/foo.inc:;
include $(PATH)/foo.inc

$(PATH)/bar.inc:;
include $(PATH)/bar.inc
Run Code Online (Sandbox Code Playgroud)

规则定义末尾的分号是无操作还是具有特定含义?

Tho*_*hor 19

带有target-prerequisite的行上的分号是为此规则执行的第一个命令行,至少在GNU make中是这样.

从手册第5章开始:

规则的命令由要逐个执行的shell命令行组成.每个命令行必须以制表符开头,但第一个命令行可以附加到目标和先决条件行,中间用分号.

在你的情况下,因为在分号后没有命令,所以它最终成为无操作.