标签: shell makefile
我试图找出makefile中某个特定行正在做什么:
foo: smth_foo_depends_on ... @echo $< | bar >> $@ ...
我特别想知道:
@
echo
$<
$@
谢谢!
答案 0 :(得分:3)
为什么我们在@之前写echo?
Source:这样做是为了抑制食谱中某一特定行的回显。
$<是什么意思?
Source:$<是第一个先决条件的名称(即smth_foo_depends_on)
smth_foo_depends_on
为什么我们在$@中输出一些东西,据我所知,这是给脚本的参数列表?我们为什么要修改它?
Source:在makefile语言中,$@是当前目标的名称(即foo)。不要将它与位置参数的shell列表混淆。配方行echo $< | bar >> $@扩展为:
foo
echo $< | bar >> $@
echo smth_foo_depends_on | bar >> foo