Makefile - 缺少分隔符

时间:2013-01-01 10:41:09

标签: makefile gnu-make

  

可能重复:
  Make error: missing separator

在makefile中使用此代码:

PROG = semsearch
all: $(PROG)
%: %.c
gcc -o $@ $< -lpthread

clean:
rm $(PROG)

和错误

missing separator. stop.

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:202)

您需要在以gccrm开头的行前面加上一个硬标签。 make标准中的命令需要以制表符开头(除非它们在同一行上使用分号)。 结果应如下所示:

PROG = semsearch
all: $(PROG)
%: %.c
        gcc -o $@ $< -lpthread

clean:
        rm $(PROG)

请注意,某些编辑器可能配置为插入一系列空格而不是硬标签。如果这些行的开头有空格,您还会看到“缺少分隔符”错误。如果您在插入硬标签时遇到问题,请使用分号方式:

PROG = semsearch
all: $(PROG)
%: %.c ; gcc -o $@ $< -lpthread

clean: ; rm $(PROG)