这是我的生成文件:
all:ll
ll:ll.c
gcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $<
clean :
\rm -fr ll
当我尝试make clean
or make make
,我收到此错误:
:makefile:4: *** missing separator. Stop.
我该如何修复它?
make 定义了一个需要选项卡才能启动每个食谱。每个规则的所有操作均由选项卡标识。如果您希望在食谱中使用制表符以外的字符作为前缀,则可以将 .RECIPEPREFIX 变量设置为备用字符。
为了检查,我使用命令cat -e -t -v makefile_name
.
它显示了选项卡的存在^I
和行结尾$
。两者对于确保依赖项正确结束都至关重要,并且选项卡标记了规则的操作,以便 make 实用程序可以轻松识别它们。
Example:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)