在Makefile中,@
符号被用来表示在执行相应命令时不输出命令本身到终端。正常情况下,当make
命令执行一个规则时,会先将该规则的命令行打印到终端,然后再执行。但如果命令行前加了@
,则不会打印命令本身。$(ECHO)
是一个 make变量,并且通常被赋值为 shell 命令 echo
。echo
命令用于在终端打印文本。
所以,@$(ECHO)
的作用就是在make
执行的过程中,打印信息到终端,但不显示该打印命令本身。
例如,你有如下的 Makefile:
ECHO=echo
all:
@$(ECHO) Hello, World
当你运行make
,将会在终端看到 “Hello, World”,而命令@$(ECHO) Hello, World
本身不会被打印出来。