Makefile 描述了整个工程中所有文件的编译顺序、编译规则。而make工具则可以对我们的Makefile规则进行解释执行。Makefile文件的规则包含了目标文件和依赖文件之间的依赖关系 以及更新此规则 所需要的命令:
目标文件:依赖文件
命令
其中,命令前是Tab不是空格,否则make会报错。
首先,上一段Hello World的代码:
/* test.c */
#include <stdio.h>
int main(){
printf("hello world\n");
return 0
}
通常情况下,可以使用GCC对这段代码进行编译链接:gcc test.c -o test,然后执行./test 即可预期输出 hello world。 同时,我们也可以通过makefile实现工程的自动化编译。
test:test.o #依赖关系 1 :目标文件 test,依赖文件是test.o
cc test.o -o test #命令1: 将编译输出的test.o文件链接成目标可执行文件test
test.o:test.c #依赖关系 2 :目标文件 test.o,依赖文件是test.c
cc -c test.c -o test.o #命令2: 把源文件编译成二进制目标代码 te