我有一个 Makefile。在 makefile 的某处定义了一个变量:
FOO=hello
稍后我需要在FOO
的内容中附加一些文本。我尝试过这样的:
FOO=$(FOO)_world
我建议echo $(FOO)
会输出hello_world
.相反,我收到一个错误:
*** Recursive variable 'FOO' references itself (eventually). Stop.
使用+=
运算符是不行的,因为这会在中间添加一个空格。
答案1
您需要代替:=
递归=
:
FOO := hello
FOO := $(FOO)_world
$(info FOO=$(FOO))
你好世界
答案2
我会说makefileaddsuffix
函数就是您正在寻找的,因此在您的情况下例如:
FOO := hello
FOO := $(addsuffix _world,$(FOO))
然而,@user218374 也是对的,在这种情况下,他的解决方案也有效,但我很确定您可能会很高兴看看这些也与文件名列表相关的内置扩展函数!