例如:
# Some stuff
all: some dependencies
@$(CC) -o foo.o foo.c
@true foo.o
@some other operation
“true foo.o”行有什么作用?
通常这是 Makefile 生成器的输出,例如automake
. The true
在需要它的平台上将被替换为实际命令。最常见的情况是平台不自动维护静态归档索引;代码看起来像
foo.a: foo.o bar.o baz.o ...
ar rv foo.a foo.o bar.o baz.o ...
true foo.a
但在某些平台上(那些没有 System V 或 GNUar
)它将改为
foo.a: foo.o bar.o baz.o ...
ar rv foo.a foo.o bar.o baz.o ...
ranlib foo.a
它不被简单地删除的原因是它更容易m4
和其他宏处理器来替换一行上的文本而不是有条件地删除该行。 (可以做,但是高级m4
众所周知,黑客行为会导致精神错乱。 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)