【发布时间】:2010-09-09 05:30:25
【问题描述】:
这是我的 Makefile:
.PHONY: all homework1
CFLAGS= -g -O0 -Wall -Werror -Wno-unused-function
LDFLAGS= -lm
all : homework1
homework1 : program.tab.o program.lex.o
%.o : %.c
gcc -o$@ -c $(CFLAGS) $<
%.lex.c : %.lex %.tab.h
flex -o$@ $<
%.tab.c %.tab.h : %.y
bison --verbose -o$@ -d $<
每当我尝试编译时,都会收到警告 make: Circular program.lex <- program.lex.o dependency dropped. 我在 makefile 中根本看不到 program.lex 是如何依赖于 program.lex.o 的。我看到依赖树大约有 4 层深,但它看起来不是圆形的。
如何改进我的 makefile?
【问题讨论】:
-
不仅您的问题被标记为“作业”(没有任何人要求您这样做),而且您的可执行文件也被命名为“作业”。只是一个观察!没有评论:D
-
这是作业。当然,作业是写flex和bison文件,而不是makefile。 makefile 应该是最简单的部分:P
-
根据我的经验,Makefile 绝非易事。
标签: c makefile dependencies circular-dependency