(1)一般情况下,一个伪目标不作为另外一个目标的依赖。这是因为当一个目标文件的依赖包含伪目标时,每一次在执行这个规则,伪目标所定义的命令都会被执行(因为它作为规则的依赖,重建规则目标时需要首先重建规则的所有依赖文件)。 (2)当一个伪目标没有任何目标的依赖时,我们只能通过 make 的命令来明确的指定它的终极...
(1)makefile 中的伪目标 通过.PHONY关键字声明一个伪目标 伪目标不对应任何实际的文件(目录下有同名的文件也不会影响执行) 不管伪目标的依赖是否更新,命令总是执行 (2)makefile 伪目标的语法:先声明,后使用 本质:伪目标是 make 中特殊目标 .PHONY 的依赖。 【编程实验】 1# makefile伪目标的引入23hello.out...
当文件夹中没有clean这个文件的时候,我们输入“make clean”能按照初衷执行,但是一旦文件夹中出现clean文件,我们再次输入“make clean”,由于这个规则没有任何依赖文件,所以目标被认为是最新的而不去执行规则所定义的命令。所以rm命令不会被执行。为了解决问题,我们将目标clean定义成伪目标。 也就是添加: .PHONY:clean...
依赖方法表明了,依赖方法不正确同样没有用,比如你打电话给你爸:说:"我是你儿子,给我打钱我要充游戏!",你爸也不会给你打钱的! 通过上面的比喻,相信你已经知道什么是依赖关系和依赖方法了,他们必须都为真。 依赖关系和依赖方法都要为真,才能达成要钱的目的! makefile 里面表明的就是依赖关系和依赖方法,按照现...
当文件夹中没有clean这个文件的时候,我们输入“make clean”能按照初衷执行,但是一旦文件夹中出现clean文件,我们再次输入“make clean”,由于这个规则没有任何依赖文件,所以目标被认为是最新的而不去执行规则所定义的命令。所以rm命令不会被执行。为了解决问题,我们将目标clean定义成伪目标。
makefile只有一个最终目标,第一条规则的目标为最终目标。 二、伪目标 伪目标 PHONY英文释义:假的,欺骗的。 就是告诉make这个不是真正意义上的target,make不需要自动生成依赖关系和推导规则。 .PHONY:cleanclean:-rm run *.o 关键字.PHONY告诉make,不管当前目录是否有“clean”这个文件,clean都是伪目标。
伪目标的语法:先声明,后使用 本质: 伪目标是make中特殊目标.PHONY的依赖 编程实验4(使用伪目标模拟C语言中的函数调用) 当前目录结构如下: 示例 main.c func.c 文件内容均与编程实验1保持一致,makefile文件做如下修改(在clean目标之前增加代码:.PHONY:clean): ...
当第二次调用make test时,同样检查到没有依赖文件的更新,同时该目标文件已经生成,所以并不会执行命令。带来的问题是,如果我想更新test目标,除非删除test。 如果将test显式定义为伪目标,由于makefile对于伪目标的固定规则,每次重复调用make test都将执行命令touch test。
1、Makefile伪目标的格式: .PHONY : clean clean: rm xxxx 2、Makefile伪目标的作用:第一种情况:如果我们需要书写这样的一个规则:规则所定义的命令不是去创建目标文件...当文件夹中没有clean这个文件的时候,我们输入“make clean”能按照初衷执行,但是一...