对 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,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
Shell Linux C++
Makefile编译实战
Makefile编译实战
55 0
|
6月前
|
C语言
Makefile教程(Makefile的结构)
Makefile教程(Makefile的结构)
42 0
|
5天前
Makefile(1)入门
Makefile(1)入门
17 0
|
1月前
Makefile伪目标
Makefile伪目标
11 0
|
4月前
|
Shell
Makefile学习2
Makefile学习2
|
4月前
|
编译器 Shell Linux
Makefile学习1
Makefile学习1
|
6月前
|
IDE 编译器 程序员
Makefile零基础教学(一)初识makefile
Makefile零基础教学(一)初识makefile
101 1
Makefile零基础教学(一)初识makefile
|
6月前
|
Windows
|
IDE Linux Shell
【Makefile】简单的Makefile编写
【Makefile】简单的Makefile编写
|
Java Linux 程序员
玩转Makefile | 一文入门Makefile
玩转Makefile | 一文入门Makefile
213 0
玩转Makefile | 一文入门Makefile