【发布时间】:2011-11-21 15:35:52
【问题描述】:
给定 GNU Make 3.81。
下面的makefile
all:
echo before
TEST=1
echo after
产生“命令在第一个目标之前开始。停止。”在“TEST=1”行。
从另一侧将“覆盖”添加到 TEST,如下所示:
all:
echo before
override TEST=1
echo after
运行良好(之前和“之后”都是“打印”的)。
问题:
为什么“TEST=1”不行,而“override TEST=1”可以?
为什么在目标的命令中“覆盖 TEST=1”没问题?概率
【问题讨论】:
-
@dmckee 目标特定变量定义在规则的先决条件部分,而 TEST 变量位于规则的命令部分。
-
我的评论没有说“重复”是有原因的。
标签: linux compilation gnu-make