1、什么是make?为什么需要make?
make本质是一个应用程序。
- 用来解析源程序之间的依赖关系
- 根据依赖关系自动维护编译工作
- 执行宿主操作系统中的各种命令
其表现形式就是一个命令。用来编译源代码。在学习c/c++中,直接在命令行gcc/g++编译源程序。问什么还需要make呢?在实际工程中,源文件十分庞大,gcc/g++十分麻烦,这是就体现了make在实际的工程项目中的价值,其中GNUmake使用非常多。
2、什么是makefile?
makefile是一个描述文件(配置文件,其中写上一些规则,有make来解读这些规则)
- 定义一系列的规则来制定源文件编译的先后顺序
- 拥有特定的语法规则,支持函数定义和函数调用
- 能够直接集成操作系统中的各种命令
3、make和makefile之间的关系?
makefile中的描述用于指导make程序如何完成工作;make根据makefile中的规则执行命令,最后完成编译输出。
举例:在makefile中描述x.c,y.c,z.c之间的依赖关系
make根据makefile中的所列出的描述规则来进行具体的编译,最终生成可执行程序(也可称作目标)
make相当于一个解释器,来解释makefile脚本程序。
4、最简单的makefile示例
注意:目标后的命令需要用('\t')隔开,否则会报错。
makefile程序的使用示例:
make -f mf.txt hello
功能说明:以hello关键字作为目标查找mf.txt文件,并执行目标hello处的命令。
在我们的Linux系统中,简单即是美。可将上边的命令简写为:
make hello
功能说明:以hello关键字作为目标查找当前目录makefile或Makefile文件,并执行hello处的命令。
也可以简写为:
make
功能说明:查找makefile或Makefile文件中最顶层目标,并执行最顶层目标的命令。
注意:
- 当makefile和Makefile同时存在于一个目录时,键入make命令,执行makefile中的相关命令。
- 若当前目录中存在makefile和Makefile,Makefile中存在目标hello,而makefile中不存在时,键入make hello报错。