对 makefile 中 .PRECIOUS 的学习

简介:

参考 stackoverflow 的例子:

http://stackoverflow.com/questions/5426934/why-this-makefile-removes-my-goal

下面的 :

%.txt: foo.log
#pass
%.log:
#pass  

运行时,用 make  a.txt --dry-run, 会得到如下的结果:

#pass

#pass

rm foo.log

也就是说, 中间文件 foo.log 被删除。

但是,如果改为:

all: foo.log
#pass
%.log:
#pass

这时候,再运行 make  --dry-run, 会得到如下的结果:

#pass

#pass

也就是说 foo.log 想成为中间文件,是需要条件的。

接着再看 .PRECIOUS 的作用:

.PRECIOUS: %.log
%.txt:foo.log
    #pass
%.log:
    #pass

make a.txt --dry-run

执行结果:

#pass

#pass

在 .PRECIOUS 中声明的文件,没有被删除。






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

目录
相关文章
|
Android开发
Android Mediatek bootloader oem锁定和解锁流程
Android Mediatek bootloader oem锁定和解锁流程
498 0
|
算法 C++ 索引
【C++STL基础入门】深入浅出string类查找字串、返回字串和交换操作
【C++STL基础入门】深入浅出string类查找字串、返回字串和交换操作
1031 1
|
存储 安全 Linux
linux系统中u-boot命令的EMMC和SD卡操作命令分析
linux系统中u-boot命令的EMMC和SD卡操作命令分析
1215 1
|
12月前
|
存储 缓存 监控
深入了解MySQL内存管理:如何查看MySQL使用的内存
深入了解MySQL内存管理:如何查看MySQL使用的内存
1173 1
|
存储 对象存储 数据安全/隐私保护
Minio图床介绍和使用
本文介绍了MinIO这一开源对象存储服务器的特点和优势,并提供了基于Docker的快速部署方法,以及如何使用MinIO进行文件上传和通过Web界面管理存储桶的详细步骤。
Minio图床介绍和使用
|
12月前
|
SQL 安全 数据库
Python防止SQL注入攻击的方法
Python防止SQL注入攻击的方法
417 0
|
存储 安全 C语言
|
存储 缓存 弹性计算
重新审视 CXL 时代下的分布式内存
从以太网到 RDMA 再到 CXL,标志着互连技术的重大突破。
|
小程序
uni-app——微信小程序设置全局分享
uni-app——微信小程序设置全局分享
527 0
【已解决】kex_exchange_identification: Connection closed by remote host fatal: Could not read from
【已解决】kex_exchange_identification: Connection closed by remote host fatal: Could not read from