对 makefile 中 .DELETE_ON_ERRORS 的学习体会

本文介绍了一个Makefile的实战案例,展示了如何使用Makefile构建简单的C程序,并解释了make命令的不同选项所产生的不同效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上例子

复制代码
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 文件,并没有被删除。

 

 

结束




本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/09/24/2700066.html,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值