所有的规则都以目标、依赖、和命令组成,最最简单的规则就是前面提到的这种规则
main: main.o insert.o search.o
$(CC) -o main main.o insert.o search.o
Makefile 中规定了一些特殊目标,以 .PHONY 为例
main: main.o insert.o search.o
gcc -o $@ $^
.PHONY: clean
clean:
rm *.o
rm main
.PHONY 目标的作用是表示其依赖作为伪目标使用,伪目标不代表真正的文件名,可以放着和实际的文件名冲突还能提高 make 编译的效率。
如同 .PHONY 这样的目标还有许多,GNU make 支持的如下表
目标 | 说明 |
---|---|
.PHONY | 其依赖作为伪目标使用,伪目标为目标的规则无论目标文件是否存在都会无条件执行 |
.SUFFIXES |