有两种理由需要使用PHONY 目标:避免和同名文件冲突,改善性能。 如果编写一个规则,并不产生目标文件,则其命令在每次make 该目标时都执行。 例如: clean: rm *.o temp 因为"rm"命令并不产生"clean"文件,则每次执行"make clean"的时候,该命令都会执行。如果目录中出现了"clean"文件,则规则失效了:没有依赖文件,文...
由此可见,.PHONY的作用就是申明一个TARGET是“伪TARGET”,不用为生成任何文件,自然不用检查与其同名的文件。 我们测试下,加上.PHONY申明后的结果: 与我们预想的一样,make clean顺利执行,生成的target文件删除成功。 Makefile中的各种赋值运算符号的区别 在Makefile的规则写法中,变量的赋值运算,有以下几种方式: TES...
在Makefile中,.PHONY目标是一个特殊的目标,用于声明一个伪目标(phony target)。伪目标是指在Makefile中定义的目标,其实际上并不对应任何实际的文件,而是用于执行一系列命令或其他目标。 .PHONY目标的作用是告诉make工具,该目标不对应任何实际的文件,无论是否存在同名的文件,都需要执行该目标下定义的命令或其他目标。
因此,将 .PHONY 放在 Makefile 的第二行或之后可以使文件更符合代码规范和可读性要求。 避免误解和错误:如果将 .PHONY 放在中间某处,可能会导致 Makefile 中的其他目标被误认为是实际存在的文件,从而引发构建错误或其他问题。 总之,.PHONY 目标放在 Makefile 的顶部或...
作用 .PHONY是一个伪目标, 可以防止在Makefile中定义的只执行命令的目标和工作目录下的实际文件出现名字冲突, 另一种是提交执行makefile时的效率。 说明 (1)伪目标意思是这个目标本身不代表一个文件,执行这个目标不是为了得到某个文件或东西,而是单纯为了执行这个目标下面的命令。
makefile 中.PHONY的作用 一.实例 拿clean举例,如果make完成后,自己另外定义一个名叫clean的文件,再执行make clean时,将不会执行rm命令。 为了避免出现这个问题,需要.PHONY: clean 图示: (1)不添加.PHONY:clean 在Makefile所在的目录下touch一个clean文件...
.PHONY: clean clean:rm -rf *.o make clean即使您有一个名为的文件,Now 也将按预期运行clean。...
了解Makefile中的.PHONY命令的作用至关重要。一个简单的Makefile如下,输入make命令可生成四个目标文件,执行make clean则删除这四个目标文件。若在Makefile同级目录存在名为clean的文件,执行make clean将报错。这是因为默认情况下,TARGET被视为文件,而当与TARGET同名的文件存在时,执行该TARGET的编译命令...