Makefile 生成文件错误:";缺少分隔符。停止。”;

Makefile 生成文件错误:";缺少分隔符。停止。”;,makefile,terminal,Makefile,Terminal,尝试编译Makefile时出现以下错误: Makefile:248: *** missing separator. Stop. Makefile中的相关行(第248行和附近的行)是: 其中,命令find的第三行以espresso.tar结尾是第248行。 我尝试按照列出的调试过程进行操作,并发出命令cat-e-t-v Makefile,该命令给出了以下代码: tar :$ ^I@if test -f espresso.tar.gz ; then /bin/rm espresso.tar.g

尝试编译Makefile时出现以下错误:

 Makefile:248: *** missing separator.  Stop.
Makefile中的相关行(第248行和附近的行)是:

其中,命令
find
的第三行以
espresso.tar
结尾是第248行。 我尝试按照列出的调试过程进行操作,并发出命令
cat-e-t-v Makefile
,该命令给出了以下代码:

tar :$
^I@if test -f espresso.tar.gz ; then /bin/rm espresso.tar.gz ; fi$
^I# do not include unneeded stuff $
^Ifind ./ -type f | grep -v -e /.svn/ -e'/\.' -e'\.o$$' \$
         -e'\.mod$$' -e'\.a$$' -e'\.d$$' -e'\.i$$' -e'\.F90$$' -e'\.x$$' \$
^I     -e'~$$' -e'\./GUI' -e '\./tempdir' | xargs tar rvf espresso.tar$
^Igzip espresso.tar$
$
果然,^I字符丢失了,但第247行(奇怪)。因此,我编辑了文件以包含制表符,现在它显示:

tar :$
^I@if test -f espresso.tar.gz ; then /bin/rm espresso.tar.gz ; fi$
^I# do not include unneeded stuff $
^Ifind ./ -type f | grep -v -e /.svn/ -e'/\.' -e'\.o$$' \$
^I     -e'\.mod$$' -e'\.a$$' -e'\.d$$' -e'\.i$$' -e'\.F90$$' -e'\.x$$' \$
^I     -e'~$$' -e'\./GUI' -e '\./tempdir' | xargs tar rvf espresso.tar$
^Igzip espresso.tar$
$
但是,错误仍然存在,这是我有点预料到的,因为问题首先不在那一行。我甚至尝试删除相关行中的所有空白,但错误仍然存在。不确定^I字符是否有问题。如能帮助解决此问题,将不胜感激。谢谢


完整的Makefile可以在下载文件的主文件夹中找到(直接链接到该文件)

这里一定有错误。这个食谱没有什么问题。我下载了您的tarball,但根makefile的第248行不是该规则中的一行,在该版本中。我还运行了
make-n
,但没有收到错误消息,因此根makefile不是问题。然后我在tarball中的所有makefile上运行了
make-n
,没有任何一个文件出现缺少分隔符的错误。
tar :$
^I@if test -f espresso.tar.gz ; then /bin/rm espresso.tar.gz ; fi$
^I# do not include unneeded stuff $
^Ifind ./ -type f | grep -v -e /.svn/ -e'/\.' -e'\.o$$' \$
^I     -e'\.mod$$' -e'\.a$$' -e'\.d$$' -e'\.i$$' -e'\.F90$$' -e'\.x$$' \$
^I     -e'~$$' -e'\./GUI' -e '\./tempdir' | xargs tar rvf espresso.tar$
^Igzip espresso.tar$
$