我遇到一些make变量有问题,我有这样的事情:
SUFFIX := raw
FILENAME = name.$(SUFFIX)
...
...
#much later, in a different makefile far away:
SUFFIX := img
echo $(FILENAME)
但是FILENAME具有原始的原始后缀值(name.raw),而不是最近分配的“img”值。
我在这里错过了一些简单的东西吗?使用最新发布的gmake。
答案 0 :(得分:0)
我无法通过一系列包含重现此错误;还有其他事情涉及。我建议你尝试以下方法并告诉我们结果:
@echo filename: $(FILENAME)
@echo origin: $(origin FILENAME)
@echo flavor: $(flavor FILENAME)
修改:
好了,现在我们知道FILENAME
在某处被简单地定义(即用:=
)。因此,尝试跟踪包含链,并找出发生的位置。这是一个技巧:把这些行放在你感兴趣的任何makefile中
ifeq ($(flavor FILENAME),simple)
$(warning FILENAME is simply defined)
endif