首页 > 其他 > 详细

Makefile中的目标

时间:2019-08-20 19:03:13      阅读:79      评论:0      收藏:0      [点我收藏+]

Makefile中的目标

一般目标

  • 目标就是我们需要的最终文件,也是make的最终输出  
  • Makefile的运行机制是:先将目标当成文件,查看文件是否存在,如果存在且是最新,那么直接结束,如果文件不存在,那么根据依赖和命令生成目标。

 

伪目标

  • 伪目标也是目标
  • 伪目标是一种特殊的目标,有其特殊性
  • 伪目标的特殊性:伪目标不会当成文件来判断,只是一个标签
  • 伪目标同样可以有依赖,这样make伪目标时就是先make依赖,然后运行规则
  • 作用:伪目标每次都会更新
  • 格式:.PHONY : xxx
  • 例子:
.PHONY : clean
#只要有这个声明,不管是否有“clean”文件,要运行“clean”这个目标,只有“make clean”

  

多目标

  • Makefile 的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖 于一个文件,并且其生成的命令大体类似
bigoutput littleoutput : text.g 
	generate text.g -$(subst output,,$@) > $@
#等价于
bigoutput : text.g 
	generate text.g -big > bigoutput 
littleoutput : text.g
	generate text.g -little > littleoutput 

  

相同目标

  • 多条规则目标相同,称为相同目标
  • Makefile的处理规则:如果多条规则中只有一条规则有命令,那么直接合并成一条规则,目标不变,依赖叠加;如果有多条规则有命令,那么后面的规则会覆盖前面的规则,且会爆告警
  • Makefile中的自动头文件依赖就是利用目标相同时,规则合并的技术实现
target1: dep1
target1: dep2
    cmd2

#合并后

target1: dep1 dep2
    cmd2
target1: dep1
    cmd1
target1: dep2
    cmd2

#合并后

target1: dep2
    cmd2

  

Makefile中的目标

原文:https://www.cnblogs.com/chusiyong/p/11384712.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!