一、自动编译
1、创建文件名叫makefile 或者MAKEFILE文件
2、makefile文件书写规则
(1)目标文件:依赖文件
(一个tab键,不能用空格代替)命令代码
使用方法:在终端敲make
3、目标文件:最终要生成的文件
依赖文件:为了生成目标文件所需要的文件
命令:通过依赖文件生成目标文件的方法
4、伪目标文件(不生成目标文件)
已删除为例
clean:
(一个tab键,不能用空格代替)命令代码
使用方法:在终端敲make clean
伪目标最好在PHONY后面声明一下
5、执行规则
(1)如果目标文件时间早于依赖文件则重新生成目标文件
(2)如果目标文件不存在,会根据依赖文件生成目标文件
二、 makefile中的一些函数
1、makefile中变量不需要函数
2、用$取变量的值
3、wildcard 匹配当前目录下所有类型文件格式
$(wildcard *.c) 匹配当前目录下所有.c文件
4、pastsubst把一个文件夹中所有的类型文件转换成另外一种类型
5、自动变量
$(@)代表规则中的目标文件
$(n)代表规则中所有的依赖文件
$( c)代表规则中第一个依赖文件
6、模式匹配
%.o:%.c
2、代码格式
src = $(wildcard ./src/*.c)
obj = $(patsubst ./src/%.c, ./obj/%.o, $(src))
target=./bin/a.out
all:$(target)
$(target):$(obj)
gcc $(^) -o $(@)
$(obj):./obj/%.o:./src/%.c
gcc -c $(^) -I ./include -o $(@)
.PHONY:clean all
clean:
-rm -rf $(target) $(obj)