Makefile产生错误但构建良好?

问题描述 投票:1回答:2

我正在使用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

我已经做了大量的搜索,找不到任何与我的特定问题有关的内容,所以我想知道是否有人对这里发生的事情有所了解。谢谢你!

c linux makefile recipe
2个回答
2
投票

使用TARG = all,您有:

all: all

all: $(OBJS)

将您的程序命名为其他名称,而不是all


1
投票

你有all的循环依赖取决于all(因为TARG扩展到all)。依赖关系图必须是DAG。更改

TARG = all

TARG = something
© www.soinside.com 2019 - 2024. All rights reserved.