一、基本理解
一个工程包含许多源文件。Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个shell脚本,其中也可以执行操作系统的命令。
通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。
二、自动化编译
Makefile带来的好处是-----自动化编译,一旦写好,只需要一个make命令,整个工程完全自动。
Make是一个命令工具,是一个解释makefile中指令的命令工具。
大多数IDE都有这个命令,比如Delphi下的make,Visual C++xia 的nmake,Linux下GNU的make。
Makefile文件是许多编译器—包括windows NT下的编译器—维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改了makefile文件而已。
通过在makefile中定义各个文件之间的依赖关系,make工具可以避免许多不必要的编译工作。利用shell脚本也可以达到自动编译的效果,但是shell脚本将全部编译任何源文件,包括哪些不必要重复编译的源文件,而make工具则可以根据目标上一次编译的时间和目标所依赖的源文件的更新时间而自动判断应当编译哪个源文件。
三、整体流程
Makefile文件写好之后,接着在makefile文件所在的目录下敲入make命令就可以了,根据makefile文件,make命令知道了需要怎么去编译和连接目标程序。