我的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)
答案 0 :(得分:1)
当您执行make
时,它会生成您告诉它的目标。除非你告诉它制作clean
目标,或者该目标是你所做的那个目标的依赖,否则它不会成为目标。 makefile和指定依赖项(而不仅仅是使用构建脚本)的主要目的是仅执行所需的操作。默认情况下,make
是makefile中的第一个目标。
我认为你缺少makefile的全部内容以及指定依赖项的原因。您拥有$(PROJECT) : $(OBJ)
的原因是它知道如果目标文件没有更改,则不必创建该目标。
为什么即使没有任何改变,您是否希望它重建项目?