这是我的生成文件:
all:ll ll:ll.c gcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $< clean : \rm -fr ll
当我尝试make cleanormake make时,我收到此错误:
make clean
make make
:makefile:4: *** missing separator. Stop.
我该如何解决?
make 与标签的关系非常愚蠢。每个规则的所有操作都由选项卡标识。而且,不,四个空格不构成一个制表符。只有一个制表符才有制表符。
要检查,我使用命令cat -e -t -v makefile_name。
cat -e -t -v makefile_name
它显示了带有 的制表符和带有 的^I行尾$。两者对于确保依赖关系正确结束和选项卡标记规则的操作至关重要,以便 make 实用程序可以轻松识别它们。
^I
$
例子:
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