来自狄泰软件学院
0.前言
无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和makefile工具可以大大提高项目开发的效率。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了。
1.什么是make?
make是一个应用程序
- 解析源程序之间的依赖关系
- 根据依赖关系自动维护编译工作
- 执行宿主操作系统中的各种命令
2.makefile是一个描述文件
- 定义一系列的规则来指定源文件编译后的先后顺序
- 拥有特定的语法规则,支持函数定义和函数调用
- 能够直接集成操作系统中的各种命令
3.make和makefile之间的关系
makefile中的描述用于指导make程序如何完成工作;make根据makefile中的规则执行命令,最后完成编译输出。
4.make程序的使用示例
make -f mf.txt hello
- 以hello关键字作为目标查找mf.txt文件,并执行hello处的命令
-f 指定作为makefile的文件的名称。
如果不用该选项,那么make程序首先在当前目录查找名为makefile的文件,如果没有找到,它就会转而查找名为Makefile的文件。
如果您在Linux下使用GNU Make的话,它会首先查找GNUmakefile,之后再搜索makefile和Makefile。按照惯例,许多Linux程序员使用Makefile,因为这样能使Makefile出现在目录中所有以小写字母命名的文件的前面。所以,最好不要使用GNUmakefile这一名称,因为它只适用于make程序的GNU版本。
5.make程序的简写实例
make hello
功能说明:
以hello关键字作为目标查找makefile或者Makefile文件,并执行hello处的命令
make
功能说明:
查找makefile或Makefile文件中最顶层目标,并执行最顶层目标的命令。
小结:
- make只是一个特殊功能的应用程序
- make用于根据指定的目标执行相应的命令
- makefile用于定义目标和实现目标所需的命令
- makefile有特定的语法规则,支持函数定义和调用