make工具自动完成编译工作,只编译有更改的文件。
Makefile文件描述了整个工程的编译、连接等规则。
Makefile基本规则
TARGET... : DEPENDENCIES...
COMMAND
....
如果依赖文件列表一个或者多个有改动(时间变动)时,就执行COMMAND来生成TARGET。
伪目标不是真正要生成的文件,没有依赖列表。只是为了执行后面的COMMAND.显示指定为一个伪目标:.PHONY:clean(clean 为一个伪目标)。
默认make命令是要生成第一个TARGET.
Makefile自动化变量
$@规则的目标文件名
$<第一个依赖文件名
$^依赖的所有列表
自定义变量
变量的引用使用$(....)
make -f ...... 用其他的Makefile
@符号作用:加在COMMAND前,在界面上不显示命令执行过程。
Makefile编译多个可执行文件
隐含的推导规则
同名的.c 文件生成同名的可执行文件
模式规则: %.o:%.c
后缀规则:.c.o:
gcc -Wall -g -c $< -o $@
![](https://img-my.csdn.net/uploads/201301/25/1359044980_5200.png)
$(MAKE) 即为make
make常用内嵌函数
多级目录Makefile