1. makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
2. makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
3. Makefile的编写规则
Makefile文件中,注释以"#"开始
Makefile文件中最重要的是描述文件的依赖关系的说明,其一般的格式为:
target: components
TAB rule
第一行表示的是依赖关系,第二行是规则。
4. Makefile的常用变量
Makefile有三个非常有用的变量:$@,$^,$<。其意义为:
$@:目标文件
$^:所有的依赖文件
$<:第一个依赖文件
5. Makefile 的缺省规则
..c.o:
gcc -c $<
这个规则表示所有的.o文件都是依赖于相应的.c文件的
6. Example for Makefile
---------------------------------------------------------
#It is a example for describing makefile
prog : filea.o fileb.o filec.o
cc filea.o fileb.o filec.o -LS -o prog
filea.o : filea.c a.h defs
cc -c filea.c
fileb.o : fileb.c b.h defs
cc -c fileb.c
filec.o : filec.c c.h
cc -c filec.c
----------------------------------------------------------