在makefile中使用此代码:
PROG = semsearch
all: $(PROG)
%: %.c
gcc -o $@ $< -lpthread
clean:
rm $(PROG)
和错误
missing separator. stop.
有人可以帮助我吗?
答案 0 :(得分:202)
您需要在以gcc
和rm
开头的行前面加上一个硬标签。 make标准中的命令需要以制表符开头(除非它们在同一行上使用分号)。
结果应如下所示:
PROG = semsearch
all: $(PROG)
%: %.c
gcc -o $@ $< -lpthread
clean:
rm $(PROG)
请注意,某些编辑器可能配置为插入一系列空格而不是硬标签。如果这些行的开头有空格,您还会看到“缺少分隔符”错误。如果您在插入硬标签时遇到问题,请使用分号方式:
PROG = semsearch
all: $(PROG)
%: %.c ; gcc -o $@ $< -lpthread
clean: ; rm $(PROG)