我想有类似的东西:
PrintTarget:
@echo Building $(TARGET)
SetRelTarget: TARGET = Release
SetRelTarget:
@echo Target is set.
BuildRel: SetRelTarget PrintTarget
但TARGET
中设置的SetRelTargetAs
变量不是全局变量。
我的问题是:
是否可以修改规则中的全局变量并在此规则之外使用此修改后的值?
谢谢。
答案 0 :(得分:0)
由于代码中没有任何变量,您只需执行此操作:
TARGET = Release
PrintTarget:
@echo Building $(TARGET)
BuildRel: PrintTarget
演示:
$ make BuildRel
Building Release
$ make TARGET=foo BuildRel
Building foo
如果您的用例更复杂,请提供更多详细信息。
答案 1 :(得分:0)
将TARGET设置为在BuildRel中发布,然后它应该适用于它的所有先决条件(尽管它不是全局的),
PrintTarget:
@echo Building $(TARGET)
#SetRelTarget: TARGET = Release
SetRelTarget:
@echo Target is set to $(TARGET).
BuildRel: TARGET = Release
BuildRel: SetRelTarget PrintTarget