make和makefile
如果源代码文件少,可以直接使用gcc编译
如果代码过多,就需要使用make工具
make工具需要makefile文件
makefile文件的命名:
makefile或者Makefile
makefile中的规则:
目标:依赖
(tab)命令
app:a.c b.c c.c
gcc a.c b.c c.c -o app
这样写的缺点:修改一个文件,其他文件都重新编译,所以要分开写
makefile的工作原理:
1.第一个目标是终极目标,检测依赖是否存在,如果依赖不见,就向下查找下面的规则
2.如果依赖存在,通过判断文件的时间是否需要更新
makefile中的变量:
自定义变量:小写
1.obj=a.c b.c c.c
2.变量取值:
aa=$(obj)
makefile自带的变量:大写
自动变量:只能在规则中的命令中使用
$@:规则中的目标
$<:代表第一个依赖
$^:代表所有依赖
makefile中模式匹配:
%.o:%.c
makefile中的注释使用#
makefile中的函数:
makefile中的函数都有返回值
查找指定目录下的指定类型的文件:src = $(wildcard ./*.c)
匹配替换:obj = $(patsubst %.c,%.o,$(src))
直接执行make生成终极目标
make 指定目标:生成指定目标
makefile中的命令前面添加-,表示即使该条命令执行失败后,继续向下执行其余的命令
声明伪目标:.PHONEY:目标