17

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

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

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

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

4

1 回答 1

23

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

从手册的第 5 章:

规则的命令由要一一执行的 shell 命令行组成。每个命令行必须以制表符开头,除了第一个命令行可以附加到 target-and-prerequisites 行,中间用分号隔开。

在您的情况下,由于分号后没有命令,因此它最终成为无操作。

于 2012-09-07T17:46:26.117 回答