我正在使用makefile来构建多个程序。这是代码:
SRCS = prog1.c prog2.c prog3.c
TARG = all
CC = gcc
OPTS = -O
LIBS = -lm
OBJS = $(SRCS:.c=.o)
all: $(TARG)
$(TARG): $(OBJS)
$(CC) -o $(TARG) $(OBJS) $(LIBS)
%.o: %.c
$(CC) $(OPTS) -c $< -o $@
clean:
rm -f $(OBJS) $(TARG)
这个makefile完美地生成了三个prog.o文件,但是我收到一个令我困惑的错误:
Makefile:12: recipe for target 'all' failed
我已经做了大量的搜索,找不到任何与我的特定问题有关的内容,所以我想知道是否有人对这里发生的事情有所了解。谢谢你!
使用TARG = all
,您有:
all: all
all: $(OBJS)
将您的程序命名为其他名称,而不是all
。
你有all
的循环依赖取决于all
(因为TARG
扩展到all
)。依赖关系图必须是DAG。更改
TARG = all
至
TARG = something