Makefile: 缺少分隔符。停止。

6 浏览
0 Comments

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日
0
0 Comments

在VS Code中,只需要点击右下角的“空格:4”并将其更改为制表符,即可在编辑Makefile时使用制表符。

0
0 Comments

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

0