make 指令中 .PHONY
时间: 2023-10-28 12:05:58 浏览: 126
Linux用make指令编译进度条程序
在Makefile中,.PHONY是一个特殊的目标。它用于标记那些不产生实际文件的目标,而仅仅是执行一些命令或动作的目标。当我们在Makefile中声明了一个目标为.PHONY时,无论是否存在与该目标同名的文件,该目标都会被执行。
.PHONY目标通常用于表示一些常用操作,如clean(清理生成的文件)、all(构建全部目标)等。通过将这些操作声明为.PHONY目标,我们可以确保它们始终会被执行,而不管是否已经存在了同名的文件。
例如,以下是一个简单的Makefile示例,其中声明了clean和all为.PHONY目标:
```
.PHONY: clean all
all: program
program: main.o utils.o
gcc -o program main.o utils.o
main.o: main.c
gcc -c main.c
utils.o: utils.c
gcc -c utils.c
clean:
rm -f program *.o
```
在此示例中,clean和all被声明为.PHONY目标。无论是否存在名为clean或all的文件,当我们运行make clean或make all时,对应的命令都会被执行。
请注意,.PHONY目标是一种约定,它告诉make工具这些目标不是真正的文件依赖关系,而是需要执行的动作。这样做可以避免潜在的问题和冲突。
阅读全文