Makefile – 缺less分隔符

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

在makefile中有这样的代码:

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

和错误

 missing separator. stop. 

有人能帮我吗?

您需要在gccrm开始的行之前加上硬标签。 make规则中的命令需要以选项卡开始(除非它们在同一行上使用分号)。 结果应该是这样的:

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

请注意,一些编辑器可能被configuration为插入一个空格序列,而不是一个硬标签。 如果在这些行的开始处有空格,您还会看到“丢失的分隔符”错误。 如果插入硬标签时遇到问题,请使用分号方式:

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