尝试编译Makefile会出现以下错误:
Makefile:248: *** missing separator. Stop.
Makefile中的相关行(第248行和附近的行)是:
tar :
@if test -f espresso.tar.gz ; then /bin/rm espresso.tar.gz ; fi
# do not include unneeded stuff
find ./ -type f | grep -v -e /.svn/ -e'/\.' -e'\.o$$' \
-e'\.mod$$' -e'\.a$$' -e'\.d$$' -e'\.i$$' -e'\.F90$$' -e'\.x$$' \
-e'~$$' -e'\./GUI' -e '\./tempdir' | xargs tar rvf espresso.tar
gzip espresso.tar
以find
结尾的命令espresso.tar
的第三行是第248行。
我尝试按照here列出的调试过程并发出命令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(直接链接到文件here)