这是我的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.
我该怎么解决呢?
这是我的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.
我该怎么解决呢?
当前回答
这是一个很老的问题,但我仍然想说一个使用vi/vim编辑器来可视化标签的选项。如果你安装了vi/vim,那么打开一个Makefile(例如vim Makefile)并输入:set list。这将显示插入的选项卡数量,如下所示,
%-linux: force$
^I@if [ "$(GCC_VERSION)" = "2.96" ] ; then \$
^I^Iecho ===== Generating build tree for legacy $@ architecture =====; \$
^I^I$(CONFIGURE) $(CWD) $@ legacy; \$
^Ielse \$
^I^Iecho ===== Generating build tree for $@ architecture =====; \$
^I^I$(CONFIGURE) $(CWD) $@; \$
^Ifi$
^Icd build-$@;make$
其他回答
如果你们中有人正在使用Intellij的产品,解决方案如下:
转到首选项>编辑器>代码样式 这里您需要选择与您的问题相关的文件类型。但大多数情况下你需要选择其他文件类型。 在打开的选项卡中,标记“使用选项卡字符”复选框并小心,选项卡大小和缩进值必须为4。
PyCharm的解决方案是安装一个Makefile支持插件:
打开首选项(cmd +,) 去插件->市场 搜索Makefile支持,安装并重新启动IDE。
这应该可以解决问题,并提供makefile的语法。
默认情况下,您应该始终在制表符后写入命令,而不是空格。可以将其更改为带有. recipeprefix变量的另一个字符。
这适用于gcc行(行#4)。您需要在gcc之前插入tab。
也用rm -fr ll替换\rm -fr ll。在此命令之前也要插入制表符。
这是因为制表符被空格取代。 若要禁用此功能,请转到
中- >编辑- >首选项- >编辑器
并删除检查
"用空格替换制表符"
关键点是“HARD TAB”
检查是否使用TAB而不是空格 检查.vimrc中的set tabstop=X