1

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

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

./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)$
4

2 回答 2

3

yelp-tools运行前需要安装./autogen.sh。这样做之后,您会注意到@YELP_HELP_RULES@indocs/Makefile只是一个应该扩展的占位符。

于 2018-05-31T19:03:20.593 回答
1

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

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 倍空格:编辑为 ...[TAB]@YELP_HELP_RULES@

.PRECIOUS: Makefile

    @YELP_HELP_RULES@

编辑:查看@Arkadiusz Drabczyk 的答案

于 2018-05-31T18:53:30.453 回答