今天看了一下makefile的相关知识,当存在多个.c文件的时候,makefile存在就显得很有必要了,因为在一般情况下,若改动了其中的某个文件,你的一个个重新编译。而makefile 则只要你一个make指令就去重新编译改动过的地方,对于没有改动的,他懒得去管理。
在写makefile之前,一定要搞清文件之间的关联关系,一般的描述格式如下:
target:components
TAB rule
第一行表示的是依赖关系,第二行表示的是规则。这里有些要注意的方面:
1,依赖关系的格式中,target与冒号,以及冒号与第一个元素之间都是有空格的。即target : components.
2, 别忘记了TAB键的使用。
3,为了便于说明,这里给出一个写好的makefile文件,
file : file.o file2.o file3.o file4.o
gcc -o file.o file2.o file3.o file4.o
file.o : file.c file.h
gcc -c file.c
file2.o : file2.c
gcc -c file2.c
file3.o : file3.c
gcc -c file3.c
file4.o : file4.c
gcc -c file4.c
如上所述,一开始就生成可执行文件file,实际不是这样的,这样写的目的是有个总体认识,把握。系统在编译的时候,还是按照上面的从下到上的顺序来编译的。还有要注意的就是gcc后面的文件只能是.c文件,而依赖文件可以有.c文件和.h文件。