Makefile基础语法规则
Makefile优点
由于在大型工程中,一个完整的c语言项目往往需要很多的c\h文件构成,手动输入gcc xxxxx来编译项目是一个无聊的重复性工作,make的作用就出现了,通过写好的makefile文件,make后会自动的编译修改的文件,而不会整体以编译.
规则格式
目标:依赖文件集合(.o文件)
命令1(生成.o文件)
命令2
....
....
示例

以下
(最终)目标是生成main这个可执行文件:他的依赖是右边三个.o文件 不满足就先执行下面的目标
执行命令编译.o文件为可执行文件
目标是生成.o文件:依赖是.c文件
执行命令编译.c文件为.o文件
变量(字符串)
#1 $(xxx) 表示引用变量
object = main.o input.o calcu.o
name = main
$(name):$(objects)
gcc -o main $(object)
常用命令
clean:
rm *.o
rm $(name)
print:
@echo xxxxx: $(name)
几个等号:
:= 不取最后一次的值
?= 前面没被赋值 则赋值 否则不变
+= 变量追加
% 模式
#通配符
%.o:%.c
#自动化变量
$@ 目标集合
$% 目标是函数库的时候表示成员名 否则为空
$< 依赖文件的第一个文件 若%定义 则表示符合的集合
$? 所有比目标新的依赖文件的集合,使用空格分开
$^ 素有依赖文件的集合 并去重
$+ 同上 但不去重
$* %及之前的部分
伪目标
防止因文件名冲突导致的问题
.PHONY:xxx
xxx:
xxxxxx