一个没有创建可执行文件的简单Makefile

时间:2014-07-18 18:30:11

标签: 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。 我该如何解决?

谢谢!

1 个答案:

答案 0 :(得分:3)

$(EXEC): $(OBJS)
        $(CC) -o $@ $(CFLAGS) $(OBJS)

基本上,当您将多个对象列为依赖项时,不能使用隐式规则,因此您必须编写命令以自行执行。在这种情况下,$@$(EXEC)的简写;它是正在创建的目标。