在前面说过,将一个大的项目转化为多个小的部分,可以提高软件调试,维护的效率,但同时使编译的命令增多,为了简化生成代码的步骤,GNU提供了make工具。
make工具读入一个文本文件,该文本文件中主要记录着一些规则,说明最终生成的二进制代码依赖哪些模块以及这些模块式如何生成的。一般这个文件会被称为makefile文件,其格式为: 目标:依赖项列表
命令
其中依赖项列表一般为生成目标文件的其它目标文件或者文件名。Make工具根据读入的文本文件判断每个目标中依赖项是否是最新的,若不是最新的进根据其后的命令产生最新的依赖项,从而保证目标文件的最新。
对于前面的例子,makefile可写成:
my_app: greeting.o my_app.o greeting.o
gcc my_app.o greeting.o –o my_app
greeting.o:function/greeting.c function/greeting.h
gcc –c function/greeting.c
my_app.o:my_app.c function/greeting.h
gcc –c my_app.c –Ifunction
上述文件中阐述了各自得依赖的文件和产生的命令。