Makefile--伪目标 (三)】的更多相关文章

Makefile包含 目标文件.依赖文件.可运行命令三部分. 每部分的基本格式例如以下: test: prog.o  code.o gcc  -o  test   prog.o   code.o 当中,第一行的test是目标文件. prog.o.code.o是依赖文件: 第二行的gcc -o test prog.o code.o是可运行命令. 整个Makefile文件都是这样的格式. 参考链接: https://blog.csdn.net/haoel/article/details/2886 M…
第3课 - makefile伪目标的引入 1. makefile 中的目标究竟是什么? (1)默认情况下,make 认为目标对应着一个文件  ==>  目标即文件名 (2)make 首先会检测目标对应的文件是否存在,若不存在则执行依赖和命令.若存在则会比较目标文件和依赖文件的新旧关系,决定是否执行命令.   在 make 中,通过比较目标文件和依赖文件的时间戳,来判断两者的新旧关系.make 程序使用的时间戳的类型是 mtime(modify time),即文件发生修改的时间.   在 linu…
https://www.zybuluo.com/lishuhuakai/note/210174 本节我们讨论一个Makefile中的一个重要的特殊目标:伪目标. 伪目标是这样一个目标:它不代表一个真正的文件名,在执行make时可以指定这个目标来执行其所在规则定义的命令,有时我们也可以将一个伪目标称为标签.使用伪目标有两点原因: 避免在我们的Makefile中定义的只执行命令的的目标(此目标的目的为了执行执行一系列命令,而不需要创建这个目标)和工作目录下的实际文件出现名字冲突. 提高执行make时…
Makefile的工作流程 http://c.biancheng.net/view/7091.html Makefile文件是什么? 我们教程主要是讲的是 Makefile .很多 Linux(Unix) 做开发的初学者不了解 Makefile 是什么,甚至大部分 Windows 开发工程师对 Makefile 都特别陌生.这个其实很正常,如果你是在 Windows 下作开发的话不需要去考虑这个问题,因为 Windows 下的集成开发环境(IDE)已经内置了 Makefile,或者说会自动生成…
1.Makefile伪目标的格式: .PHONY : cleanclean: rm xxxx 2.Makefile伪目标的作用: 第一种情况: 如果我们需要书写这样的一个规则:规则所定义的命令不是去创建目标文件,而是通过make命令行明确指定它来执行一些特点的命令,就像例题中的clean.当文件夹中没有clean这个文件的时候,我们输入“make clean”能按照初衷执行,但是一旦文件夹中出现clean文件,我们再次输入“make clean”,由于这个规则没有任何依赖文件,所以目标被认为是最…
我们来思考一下makefile中的目标究竟是什么?实际上,在默认情况下:    1.make将makefile的目标认为是一个文件:    2.make解释器比较目标文件和依赖文件的新旧关系,决定是否执行命令:    3.make以文件作为第一优先级. 如果不进行特殊的makefile控制,make解释器在解析makefile文件时,在解析到一个规则时,会将这个规则中的目标认为是一个文件,并进一步判断目标文件和依赖文件的新旧关系.     编写以下的makefile文件,并执行make clea…
本节我们讨论一个Makefile中的一个重要的特殊目标:伪目标. 伪目标是这样一个目标:它不代表一个真正的文件名,在执行make时可以指定这个目标来执行其所在规则定义的命令,有时我们也可以将一个伪目标称为标签.使用伪目标有两点原因:1. 避免在我们的Makefile中定义的只执行命令的的目标(此目标的目的为了执行执行一系列命令,而不需要创建这个目标)和工作目录下的实际文件出现名字冲突.2. 提高执行make时的效率,特别是对于一个大型的工程来说,编译的效率也许你同样关心.以下就这两个问题我们进行…
1. 我们知道Makefile中的语法是这样: target ... : prerequisites ... command - - 2. 假如编译两个文件可以这么写: a.o:a.c  gcc -c a.c b.o:b.c  gcc -c b.c Test: a.o b.o   gcc -o Test a.o b.oclean:  rm *.o 我们可以单独这么运行:make a.o或者make b.o或者make clean注意上面三个的区别.前两个都会生成目标,而第三个不会生成目标,仅仅希…
目标 即我们最终要生成的文件,make默认生成第一个目标,注意 makefile中tab和空格不是一回事,规则使用tab缩进,编辑器不要设置诸如"将tab替换为空格之类的选项",目标的结构如下 目标:依赖1 依赖2 <TAB>生成目标的规则 伪目标 无论如何也要执行的目标,需要使用.PHONY:标识 .PHONY:clean clean: rm -f *.o 常见伪目标 all 是所有目标的伪目标,功能是编译所有目标 clean 删除所有被make创建的文件 install…
伪目标就是总是被执行的目标,相对于目标来说,伪目标不会去考虑它的依赖的时间戳与自己时间戳的新旧关系,从而决定是否执行规则.伪目标格式: .PHONY:clean clean: -rm *.o 在makefile里面通常会将clean这个目标指定为伪目标,这个目标有个特性就是无依赖,那么每次make clean的时候都会执行它的规则:-rm *.o,那么为什么要指定为伪目标,平时看到的makefile都是把它当中一般目标.假设不指定clean为伪目标,我当前文件夹下有1个文件: a.c.我的mak…