makefile 伪目标疑问

发布于 2022-09-07 16:21:46 字数 585 浏览 20 评论 0

搜索makefile伪目标,看到一篇文章,文章链接
作者讲了伪目标的话要这么写:
.PHONY: clean
clean:
可是在这个例子中.PHONY:all确写在了all后面,这个例子中我们不降all声明为伪目标也没问题呀?比如我make就默认make all,然后prog1 prog2 prog3各自的依赖去执行。那么为什么要将all声明为PHONY,并且在all:prog1 prog2 prog3前后有无关系?

有没有相应的例子,可以去熟悉与使用make的用法?

#sample Makefile 
all : prog1 prog2 prog3 
.PHONY : all 
prog1 : prog1.o utils.o 
cc -o prog1 prog1.o utils.o 
prog2 : prog2.o 
cc -o prog2 prog2.o 
prog3 : prog3.o sort.o utils.o 
cc -o prog3 prog3.o sort.o utils.o 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

与酒说心事 2022-09-14 16:21:46

文章里说了使用 .PHONY 的原因,看这条

避免在我们的Makefile中定义的只执行命令的的目标(此目标的目的为了执行执行一系列命令,而不需要创建这个目标)和工作目录下的实际文件出现名字冲突

其实,如果项目工作目录下没有与你的目标同名的文件时,不使用 .PHONY 指定伪目标也是OK的,使用它是为了避免出现同名文件而产生冲突。比如这里的 all,只要项目工作目录下不包含 all 这个文件,那么加不加到 .PHONY 中都是没问题的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文