我试图弄清楚为什么我的 makefile 会留下所有 *.o 文件。该clean:
部分显然具有:
rm *.o *.s *.bc fib fact1 fact2 *~
我尝试将 -f 和其他几个参数添加到 rm ,但没有任何运气。什么会导致这些不被删除?这是完整的生成文件。我称之为
make -f Makefile
OFILES= fib.o
OFILES1= fact1.o
OFILES2= fact2.o
CPATH=~/cse/llvm/bin/
LLVMASY=$(CPATH)llvm-as
LLVMOPT=$(CPATH)opt
LLVMLC=$(CPATH)llc
AS=clang -c
LD=clang
all: fib fact1 fact2
fib: $(OFILES)
$(LD) $(OFILES) $(LIBS) -o $@
fact1: $(OFILES1)
$(LD) $(OFILES1) $(LIBS) -o $@
fact2: $(OFILES2)
$(LD) $(OFILES2) $(LIBS) -o $@
%.o : %.s
$(AS) $< -o $@
%.s : %.bc
$(LLVMLC) $< -O=3 -tailcallopt -o $@
%.bc : %.llvm
$(LLVMASY) $< -o $@
clean:
rm *.o *.s *.bc fib fact1 fact2 *~
编辑:我应该添加所有 *.s 和 *.bc 文件已成功删除。只有 *.o 文件保留。
免责声明: 这是家庭作业,但这不是我正在评估的部分。我的问题纯粹是出于好奇。