如果一个规则没有命令或者依赖,而且它的目标不是一个存在的文件名。在执行此规则时,目
标总会被认为是最新的。就是说:这个规则一旦被执行, make 就认为它的目标已经被更新过。这
样的目标在作为一个规则的依赖时,因为依赖总被认为被更新过,因此作为依赖所在的规则定义的
命令总会被执行。看一个例子:
clean: FORCE
rm $(objects)
FORCE:
这个例子中,目标“FORCE”符合上边的条件。它作为目标“clean”的依赖出现,在执行 make
时,它总被认为被更新过。所以“clean”所在的规则在被执行时规则所定义的命令总会被执行。
这样的一个目标通常我们将其命名为“FORCE”。
上边的例子中使用“FORCE”目标的效果和我们指定“clean”为伪目标效果相同。两种方式
相比较,使用“.PHONY”方式更加直观高效。这种方式主要用在非 GNU 版本的 make 中。
在使用GNU make,尽量避免使用这种方式。
makefile强制目标
最新推荐文章于 2023-09-19 10:15:46 发布