gnu make:“:= $(表达式)”与“:= @(表达式)”

gnu make:“:= $(表达式)”与“:= @(表达式)”

我试图确定在表达式求值期间使用“$”和“@”之间的区别(如果这是正确的术语)。例如,在 Makefile 中我试图理解以下表达式

NO-DEBUG   := @(if $(DEBUG),,1)

后来就有了下面的表达

NO-CHECKED  := $(if $(CHECKED),,1)

这些似乎在做同样的事情,但我不确定“$”和“@”可能如何影响评估。我在粗略的谷歌搜索中搜索“:= @”或“= @”找不到任何东西。有什么见解吗?为什么将其中一个与另一个相对使用?

谢谢和问候,马克

答案1

@(expression)我从未在 GNU make 中见过,也不知道。如果使用它,它只会被保留为未解释。我通过 GNU make 4.0 的测试证实了这一点。里面好像没有提到手册

关于=:=,你应该阅读变量的两种风格在参考手册中。有详细的解释和例子。

相关内容