Make不喜欢$(addprefix a,b)

时间:2018-08-09 22:51:48

标签: makefile build

Make给了我错误:

make/sources.make:16: *** missing separator.  Stop.
The terminal process terminated with exit code: 2

产生此错误的代码是:

$(addprefix a,b)

我已经检查了空格,但没有找到任何东西。 如果我将其注释掉,则不会给出任何错误。我已将其范围缩小到这一行,但我无法弄清楚。 'a'和'b'可以替换为任何东西,但仍然无法使用。但是,如果删除所有参数,例如$(addprefix ,),则不会给出错误。

这是怎么回事?

包含错误的makefile的完整代码:

# sources.make - source files

# path of source files
SOURCEPATH=src

# build list of source files
# categorize source files

SOURCE_MAIN=main.c

# add categories to SOURCES as needed
SOURCES+=$(SOURCE_MAIN)

# add the SOURCEPATH to each source file
#$(addprefix $(SOURCEPATH),$(SOURCES)) <------ This is the true error code
$(addprefix a,b)

# extra files to remove
TRASHFILES = stdout.txt stderr.txt

# extra directories to remove
TRASHDIRS = junkdir

# build target
TARGET = $(PROG)$(EXT)

# generate object files
OBJECTS = $(patsubst %.c,%.o,$(SOURCES))

# generate dependency files
DEPENDS = $(patsubst %.c,%.d,$(SOURCES))

1 个答案:

答案 0 :(得分:2)

违规行被解释为规则,而不是指令。它应改为:

SOURCES := $(addprefix $(SOURCEPATH)/,$(SOURCES))