Makefile - 缺少分隔符

use*_*257 73 makefile gnu-make

可能重复:
发生错误:缺少分隔符

在makefile中有这个代码:

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

clean:
rm $(PROG)
Run Code Online (Sandbox Code Playgroud)

和错误

missing separator. stop.
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?

Jen*_*ens 206

你需要先开始与线gcc,并rm用硬标签.make标准中的命令需要以制表符开头(除非它们在同一行上使用分号).结果应如下所示:

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

clean:
        rm $(PROG)
Run Code Online (Sandbox Code Playgroud)

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

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

clean: ; rm $(PROG)
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用 .RECIPEPREFIX 来更改字符 make 使用。请参阅:https://www.gnu.org/software/make/manual/html_node/Special-Variables.html#Special-Variables (2认同)