【makefile学习记录1】认识make和makefile

1、什么是make?为什么需要make?

make本质是一个应用程序

  • 用来解析源程序之间的依赖关系 
      很多源码程序的文件是非常多的,而且那些文件之间大多是有依赖关系的,make就是可以解析这些依赖的关系。
  • 根据依赖关系自动维护编译工作
      因为在我们编译大型源码的时候,需要编译很多的程序,加入我们的程序在编译到一大半的时候,有一个程序报错停止编译了,那么我们就需要改错,然后重新make,重新make后,它会自动从上次编译报错的地方接着编译,而不需要从头开始编译,这样就可以节省很多时间。
  • 执行宿主操作系统中的各种命令
       makefile其实可以理解为一种脚本,里面大多是执行相关宿主操作系统的命令。
      其表现形式就是一个命令。用来编译源代码。在学习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报错。

猜你喜欢

转载自blog.csdn.net/haibing_x/article/details/79861951