我想知道为什么这不会删除/清除运行make?
时生成的* .o文件# UNIX Makefile
CXX = g++
LD = g++
CXXFLAGS = -g
testlfunction: lfunction.o lfunctionlist.o lprocessor.o testlfunction.o
$(LD) -o $@ $^
clean:
rm *.o testlfunction
在使用之前
$(RM) *.o testlfunction
但它也没有用;(
为什么会这样?
答案 0 :(得分:6)
make clean
无法执行任何操作的一种方法是,如果目录中有一个名为clean
的文件,可能是运行make -t clean
的结果。这将创建一个文件,因此当您下次运行make clean
时,它将显示为最新版本 - 它没有依赖项,因此没有理由运行该操作。
如果您使用GNU Make,请确保您拥有以下行:
.PHONY: clean
这将阻止make -t
创建clean
并确保操作已完成。
答案 1 :(得分:5)
要检查实际发生的情况,请运行“make clean”并检查该命令的输出。
要检查命令是否真正运行,请在“rm”命令之前和之后插入一些“echo”命令。它们被执行了吗?
最后,您是否区分制表符和空格?在Makefile中,差异很重要。命令必须使用制表符缩进。