对 makefile 中 .DELETE_ON_ERRORS 的学习体会
上例子
SHELL=bash .DELETE_ON_ERRORS: LIBS=foo.gao all: $(LIBS) @echo final foo.gao: @echo $@ touch $@ ./me.o
其中,me.o 程序是由C语言编译而成。其内容是显示 helloworld ,然后 return 2(即非正常退出)。
运行结果要看如何来运行:
make --dry-run的运行结果:
echo foo.gao
touch foo.gao
./me.o
echo final
此时 ls 命令可以发现,在当前目录下,并没有 foo.gao 文件。
而如果是仅仅运行 make,结果则是这样的:
echo foo.gao
touch foo.gao
./me.o
hello
make: *** [foo.gao] Error 2
此时 ls 命令可以发现,在当前目录下,生成了 foo.gao 文件,并没有被删除。
结束