makefile运行但不清除目标文件和可执行文件

时间:2016-11-04 00:02:44

标签: c shell makefile

我的makefile运行但不执行rm -f $(PROJECT) $(OBJ)指定的目标文件和可执行文件的清理。如果有人能告诉我我做错了什么,我将不胜感激。谢谢。

生成文件

PROJECT = cfind
HEADERS = $(cfind.h)
OBJ = argv.o globals.o main.o pathInfo.o

C99 = cc -std=c99
CFLAGS = -Wall -pedantic -Werror

$(PROJECT) : $(OBJ)
    $(C99) $(CFLAGS) -o $(PROJECT) $(OBJ)

%.o : %.c $(HEADERS)
    $(C99) $(CFLAGS) -c $<

clean:
    rm -f $(PROJECT) $(OBJ)

1 个答案:

答案 0 :(得分:1)

当您执行make时,它会生成您告诉它的目标。除非你告诉它制作clean目标,或者该目标是你所做的那个目标的依赖,否则它不会成为目标。 makefile和指定依赖项(而不仅仅是使用构建脚本)的主要目的是仅执行所需的操作。默认情况下,make是makefile中的第一个目标。

我认为你缺少makefile的全部内容以及指定依赖项的原因。您拥有$(PROJECT) : $(OBJ)的原因是它知道如果目标文件没有更改,则不必创建该目标。

为什么即使没有任何改变,您是否希望它重建项目?