【发布时间】: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 文本文件会破坏它们。