共同目标(即目标的空白分隔单词列表)是Make的一个众所周知的功能,它基本上允许makefile汇编"类似&# 34;目标(即它们共享相同的配方和先决条件)为一个规则。
所以,我有一个makefile,比如:
define targets
foo
bar
baz
endef
$(targets) ::
@echo '$@'
执行,我得到:
/bin/sh: 1: Syntax error: Unterminated quoted string
makefile:8: recipe for target 'foo
bar
baz' failed
make: *** [foo
bar
baz] Error 2
真的?
答案 0 :(得分:1)
targets := foo bar baz
$(targets) ::
@echo '$@'
define用于创建包含换行符的变量。这不是你想要的,你只需要空格。