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))
答案 0 :(得分:2)
违规行被解释为规则,而不是指令。它应改为:
SOURCES := $(addprefix $(SOURCEPATH)/,$(SOURCES))