Makefile的伪目标
生活随笔
收集整理的这篇文章主要介绍了
Makefile的伪目标
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1、Makefile伪目标的格式:
.PHONY : cleanclean:rm xxxx
2、Makefile伪目标的作用:
第一种情况:
如果我们需要书写这样的一个规则:规则所定义的命令不是去创建目标文件,而是通过make命令行明确指定它来执行一些特点的命令,就像例题中的clean。当文件夹中没有clean这个文件的时候,我们输入“make clean”能按照初衷执行,但是一旦文件夹中出现clean文件,我们再次输入“make clean”,由于这个规则没有任何依赖文件,所以目标被认为是最新的而不去执行规则所定义的命令。所以rm命令不会被执行。为了解决问题,我们将目标clean定义成伪目标。
clean:rm xxxx如果同一个目录下有一个clean文件,那么 make clean的动作将不会执行rm动作;
所以,增加.PHONY伪目标的使用的话,就会忽略目录下clean这个文件,直接执行rm动作;
第二种情况:
伪目标的另一种使用场合时在make的并行和递归执行过程中。
SUBDIRS=foo bar bazSubdirs:for dir in $(SUBDIRS)do$(MAKE) –C $$dirdone
如果这样写,会出现几个问题:
1、 当子目录执行make出现错误,make不会退出;
2、 使用这种shell的循环方式时,没有用到make对目录的并行处理功能。
有了伪目标就可以解决上面的两个问题。
SUBDIRS=foo bar baz.PHONY:subdirs $(SUBDIRS)subdirs: $(SUBDIRS)$(SUBDIRS):$(MAKE) –C $@其中subdirs模板表示要编译多个子目录中的工程。
转载于:https://www.cnblogs.com/linhaostudy/p/7200629.html
总结
以上是生活随笔为你收集整理的Makefile的伪目标的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 进击的新版NavMesh系统:看我飞檐走
- 下一篇: Hibernate 一对一关联关系