Makefile:649: *** 缺少分隔符。停止

Makefile:649: *** missing separator. Stop

我已经阅读并检查了我似乎遇到的同种错误的所有答案。在实施了按照建议在此处或那里添加选项卡并检查空格的解决方案后,我似乎无法使 makefile 正常工作。

这来自 运行 通过我的机器配置后的 MDM 显示管理器 (https://github.com/linuxmint/mdm) 的 makefile:

./authogen.sh --with-prefetch
./configure

现在我在 make

上失败了

这是我遇到一些问题的 makefile 示例: 此代码示例是先加载 vim 然后 运行 :set list 以查看选项卡的示例,如前面在另一个 makefile 缺少分隔符问题中所述。

估计第 649 行出现错误。

635 $
636 cscopelist-am: $(am__tagged_files)$
637 ^Ilist='$(am__tagged_files)'; $
638 ^Icase "$(srcdir)" in $
639 ^I  [\/]* | ?:[\/]*) sdir="$(srcdir)" ;; $
640 ^I  *) sdir=$(subdir)/$(srcdir) ;; $
641 ^Iesac; $
642 ^Ifor i in $$list; do $
643 ^I  if test -f "$$i"; then $
644 ^I    echo "$(subdir)/$$i"; $
645 ^I  else $
646 ^I    echo "$$sdir/$$i"; $
647 ^I  fi; $
648 ^Idone >> $(top_builddir)/cscope.files$
649 $
650 distclean-tags: $
651 ^I-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags$
652 ^I-rm -f cscope.out cscope.in.out cscope.po.out cscope.files$
653 $
654 distdir: $(DISTFILES)$

Makefile:649: *** missing separator. Stop

make[2]: Entering directory '/home/knudfl/tmp/mdm/docs'
Makefile:651: *** missing separator.  Stop.

mdm 中有大量 Makefile。从

编辑mdm/docs/Makefile
.PRECIOUS: Makefile

@YELP_HELP_RULES@

... 分隔符是 [TAB],不是 8 次 space : 编辑为... [TAB]@YELP_HELP_RULES@

.PRECIOUS: Makefile

    @YELP_HELP_RULES@

编辑:查看@Arkadiusz Drabczyk 的回答

您需要在 运行 ./autogen.sh 之前安装 yelp-tools。做完之后 你会注意到 @YELP_HELP_RULES@ in docs/Makefile 只是一个占位符 应该扩大。