【问题标题】:Makefile gives error even though there is no space即使没有空间,Makefile 也会出错
【发布时间】:2022-11-27 20:39:19
【问题描述】:
all: main.c scan.c parse.c wrap.c error.c
    gcc main.c scan.c parse.c wrap.c error.c -o simple -lfl

parse.c: parse.y
    bison --defines=token.h --output=parse.c parse.y

scan.c: scan.l
    flex --outfile=scan.c scan.ll

test: simple
    ./simple < input

clean:
    $(RM) scan.c parse.c token.h simple

这是我的 Makefile,我一直遇到错误提示

Makefile:2: *** missing separator.  Stop.

我没有空格 我只有回车和制表符

有什么建议么?

我试着跑

cat -e -t -v makefile_name

这就是我得到的回报

all: main.c scan.c parse.c wrap.c error.c^M$
    gcc main.c scan.c parse.c wrap.c error.c -o simple -lfl^M$
^M$
parse.c: parse.y^M$
    bison --defines=token.h --output=parse.c parse.y^M$
^M$
scan.c: scan.l^M$
    flex --outfile=scan.c scan.ll^M$
^M$
test: simple^M$
    ./simple < input^M$
^M$
clean:^M$
    $(RM) scan.c parse.c token.h simple

【问题讨论】:

  • 使用您的文件运行 bison 根本没有 make 文件。
  • 建议的副本主要是关于 shell 脚本,但解释是相同的;使用 Windows 编辑器编辑 Unix 文本文件会破坏它们。

标签: c makefile


【解决方案1】:

复制 Makefile 并仅使用制表符时,不会发生错误。编辑器可能配置为输入空格而不是制表符。

您的 cat -e -t -v Makefile 命令也显示空格 - 对于制表符,它会打印 ^I。

您可以使用命令unexpand -4 Makefile &gt; Makefile_with_tabs 来替换空格。

【讨论】:

  • 它仍然不起作用,但没关系,我可能会给我的教授发电子邮件。
猜你喜欢
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 2011-11-26
  • 2014-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多