Makefile重建整个项目

时间:2019-06-18 03:33:57

标签: makefile

我有这个Makefile,每次我make进入控制台时,它都会重建整个项目,我知道这是某种.PHONY错误,但我无法弄清楚。 / p>

这里是Makefile

all: start run

run: prog.o move prog

prog:   prog.o
        gcc object/prog.o -o exec/prog  


prog.o: src/prog.c src/prog.h
        gcc -c src/prog.c

move:
        mv *.o object

start:
        mkdir -p exec object

clean: 
        rm -rf object exec

.PHONY:  start clean move run

我知道也有类似的话题,但是我看不出我的错误在哪里。

1 个答案:

答案 0 :(得分:0)

prog.oprog在当前目录中均不存在(并且所有其他目标都是虚假的)。那你期望什么?实际上,您每次都必须重新构建所有目标。

PROG = exec/prog
OBJ = object/prog.o
SRC = src/prog.c src/prog.h

all: $(PROG)

$(PROG): $(OBJ) | exec
    gcc $^ -o $@

$(OBJ): $(SRC) | object
    gcc -c $< -o $@

exec object:
    mkdir -p $@

clean: 
    rm -rf exec object

.PHONY: all clean