Makefile: 缺少分隔符。停止。
Makefile: 缺少分隔符。停止。
这是我的makefile:
all:ll ll:ll.c gcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $< clean : \rm -fr ll
当我尝试执行 make clean
或者 make make
时,我会得到以下错误:
:makefile:4: *** missing separator. Stop.
我该如何修复它?
admin 更改状态以发布 2023年5月25日
make 命令规定每个 recipe 都要以制表符开始。每个规则的所有操作都由制表符标识。如果您更喜欢以字符而非制表符为前缀,则可以将 .RECIPEPREFIX 变量设置为替代字符。
要检查,我使用命令 cat -e -t -v makefile_name
。
它将制表符显示为 ^I
,将行结尾显示为 $
。两者都是至关重要的,以确保依赖项正确结束,并且制表符标记规则操作,使其易于识别为 make 实用程序。
示例:
Kaizen ~/so_test $ cat -e -t -v mk.t all:ll$ ## here the $ is end of line ... $ ll:ll.c $ ^Igcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $<$ ## the ^I above means a tab was there before the action part, so this line is ok . $ clean :$ \rm -fr ll$ ## see here there is no ^I which means , tab is not present .... ## in this case you need to open the file again and edit/ensure a tab ## starts the action part