92

可能重复:
出错:缺少分隔符

在makefile中有这个代码:

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

clean:
rm $(PROG)

和错误

missing separator. stop.

有人能帮我吗?

4

1 回答 1

236

您需要在以硬制表符开头的行之前gccrmmake 规则中的命令必须以制表符开头(除非它们在同一行上跟在分号后面)。结果应如下所示:

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

clean:
        rm $(PROG)

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

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

clean: ; rm $(PROG)
于 2013-01-01T10:51:26.543 回答