一个简单的Makefile,它不';t创建可执行文件

一个简单的Makefile,它不';t创建可执行文件,makefile,Makefile,我有以下生成文件: CC = gcc OBJS = a.o b.o c.o EXEC = prog DEBUG = #-g for debug CFLAGS = -std=c99 -Wall -Werror $(DEBUG) $(EXEC) : $(OBJS) a.o : a.c a.h b.h b.o : b.c b.h c.o : c.c c.h b.h clean: rm -f $(OBJS) $(EXEC) 它创建对象文件,但不创建可执行文件-prog。 我怎么修理

我有以下生成文件:

CC = gcc
OBJS = a.o b.o c.o
EXEC = prog
DEBUG = #-g for debug
CFLAGS = -std=c99 -Wall -Werror $(DEBUG)

$(EXEC) : $(OBJS)
a.o : a.c a.h b.h
b.o : b.c b.h
c.o : c.c c.h b.h

clean:
        rm -f $(OBJS) $(EXEC)
它创建对象文件,但不创建可执行文件-
prog
。 我怎么修理它

谢谢

$(EXEC): $(OBJS)
        $(CC) -o $@ $(CFLAGS) $(OBJS)
基本上,当您将多个对象列为依赖项时,无法使用隐式规则,因此您必须编写命令以自行执行。在本例中,
$@
$(EXEC)
的缩写;它是正在创建的目标