我想只输入'make all'并让以下Makefile完成它应该做的所有事情:
LEX = lex
YACC = yacc
CC = gcc
calcu: y.tab.o lex.yy.o
$(CC) -o calcu y.tab.o lex.yy.o -ly -lfl
y.tab.c y.tab.h: parser.y
$(YACC) -d parser.y
y.tab.o: y.tab.c parser.h
$(CC) -c y.tab.c
lex.yy.o: y.tab.h lex.yy.c
$(CC) -c lex.yy.c
lex.yy.c: calclexer.l parser.h
$(LEX) calclexer.l
clean:
rm *.o
rm *.c
rm calcu
Run Code Online (Sandbox Code Playgroud)
应该怎么做?如果你只是想要它来构建calcu
,你所要做的就是键入make
它,它将与它所依赖的一切一起使用,因为它是文件中的第一个规则.
如果您仍想制定all
规则,可以这样做.我建议将其置于所有其他规则之上,以便您可以只键入make
而不是make all
.
all: calcu
Run Code Online (Sandbox Code Playgroud)