对 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 文件,并没有被删除。

 

 

结束

posted @ 2012-09-24 14:56  健哥的数据花园  阅读(416)  评论(0编辑  收藏  举报