makefile的意义
- makefile用于定义源文件间的依赖关系
- makefile说明如何编译各个源文件并生成可执行文件
依赖的定义:
targets : prerequisites ;
( ‘\t’ ) command1
makefile中的元素定义
- targets(可以包含多个目标,使用空格对多个目标名进行分隔)
- 通常是需要生成的目标文件名
- make所需执行的命令名称
- prerequisities(可以包含多个依赖,使用空格对多个依赖进行分隔)
- 当前目标所依赖的其它目标或文件
- command
- 完成目标所需要执行的命令
注意事项
【Tab】键:
每一个命令行必须以【Tab】字符开始,【Tab】字符告诉make此行是一个命令行
续行符: \
可以将内容分开写到下一行,提高可读性
依赖规则:
- 当目标对应的文件不存在,执行对应命令
- 当依赖在时间上比目标更新,执行对应命令
- 当依赖关系连续发生时,对比依赖链上的每一个目标
makefile中可以在命令前加上@符,作用为命令无回显
hello.out : main.o func.o
gcc -o hello.out main.o func.o
main.o : main.c
gcc -o main.o -c main.c
func.o : func.c
gcc -o func.o -c func.c