内容整理自视频: 牛客网
一. 什么是makefile
简而言之, Makefile是一个自动化编译软件的工具。
以redis为例:
它可以在主目录通过make命令安装。
make会自动执行Makefile文件中的命令
Makefile文件中的内容如下:
可以看到需要打开src文件夹执行MAKE命令
而src文件夹下也有一个Makefile文件,make会执行src/Makefile的内容
二. 如何写makefile
1. 命名
makefile或者Makefile都是OK的。
2. 规则
注意: Makefile中第一条规则是最主要的。
假如第一条规则中的依赖全满足,那么后面的规则也就不会执行
3. 举例
目录结构如下:
新建一个Makefile文件,内容如下
app:src/add.c src/sub.c src/test.c include/head.h
gcc src/* -I include/ -o app
然后再执行make命令
则生成一个名为app的可执行文件
更复杂一些的例子如下:
app:src/add.o src/sub.o src/test.o include/head.h
gcc src/add.o src/sub.o src/test.o -I include/ -o app
src/add.o: src/add.c include/head.h
gcc -c src/add.c -o src/add.o -I include/
src/sub.o: src/sub.c include/head.h
gcc -c src/sub.c -o src/sub.o -I include/
src/test.o: src/test.c include/head.h
gcc -c src/test.c -o src/test.o -I include/
三. make的执行规则:
假如依赖的时间比目标的最后修改时间晚,则说明依赖被修改过,所以需要重新生成