Make无法解析makefile中的共同目标(多重目标)

时间:2015-08-27 03:43:08

标签: makefile gnu-make

共同目标(即目标的空白分隔单词列表)是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



真的?

1 个答案:

答案 0 :(得分:1)

targets := foo bar baz

$(targets) ::
    @echo '$@'

define用于创建包含换行符的变量。这不是你想要的,你只需要空格。