Makefile 调用函数时,配方行执行顺序
请建议定义该makefile的规则Makefile 调用函数时,配方行执行顺序,makefile,Makefile,请建议定义该makefile的规则 all: @echo "Line 1" $(info Line 2) 被执行以使 Line 2 Line 1 是印刷的。下一个问题是,除了分成两个目标之外,如何克服这种行为?GNU make在调用任何配方行之前,总是会扩展整个配方(所有行)中的所有make变量和函数。由于$(info…是一个make函数,因此首先展开它,然后展开将首先打印您看到的“第2行”。在该扩展之后,配方只包含一行,该行被传递给shell执行,并显示“第2行” 如果您关
all:
@echo "Line 1"
$(info Line 2)
被执行以使
Line 2
Line 1
是印刷的。下一个问题是,除了分成两个目标之外,如何克服这种行为?GNU make在调用任何配方行之前,总是会扩展整个配方(所有行)中的所有make变量和函数。由于
$(info…
是一个make函数,因此首先展开它,然后展开将首先打印您看到的“第2行”。在该扩展之后,配方只包含一行,该行被传递给shell执行,并显示“第2行”
如果您关心事情的顺序,您应该只使用shell命令:
all:
@echo "Line 1"
@echo "Line 2"
GNU make在调用任何配方行之前,将始终展开整个配方(所有行)中的所有make变量和函数。由于
$(info…
是一个make函数,因此首先展开它,然后展开将首先打印您看到的“第2行”。在该扩展之后,配方只包含一行,该行被传递给shell执行,并显示“第2行”
如果您关心事情的顺序,您应该只使用shell命令:
all:
@echo "Line 1"
@echo "Line 2"