zoukankan      html  css  js  c++  java
  • Gnu make 笔记之一【简介】

    1.  Make的用处

      Make在nix系统下常用来管理大型的软件项目。它可以自动决定哪些文件需要重新编译,避免重复编译,并且可以自己动安装软件与清理编译现场。还可以自动卸载编译安装的软件。

    2. Make与Makefile的关系

         就像Shell与脚本,计算机与程序之间的关系。Makefile告诉Make要去做什么,需要什么,以及怎么样做。而Make负责执行这些指令。

    3. Makefile简价

       规则是Makefile的重要组成部分,它规定了做什么,需要什么,以及怎么样去做这三部分的内容。规则包含了文件之间的依赖关系和更新此规则目标所需要的命令。

        一个规则结构如下:

          target ... : prerequisites ...
                       recipe
                        ...
                        ...

      target:规则的目标。也就是这个规则做什么。目标可以是.o文件、也可以是最后的可执行程序的文件名等。另外,目标也可以是一个make执行的动作的名称,如目标“clean”,我们称这样的目标是“伪目标”。

      prerequisites:完成目标所依赖的条件,即需要什么。往往是生成规则目标所需要的文件名列表。依赖的条件发生了变化,往往就要重新完成目标。

      recipe:完成目标的方法,即怎样做。是规则所要执行的动作(任意的shell命令或者是可在shell下执行的程序)。一个规则可以有多个命令行,每一条命令占一行。每一个命令行必须以[Tab]字符开始。并不是所有的以[Tab]键出现行都是命令行。但make程序会把出现在第一条规则之后的所有以[Tab]字符开始的行都作为命令行来处理。

    4. Make执行的路线

      当在shell提示符下输入“make”命令以后。make读取当前目录下的Makefile文件,并将Makefile文件中的第一个目标作为其执行的“终极目标”,开始处理第一个规则。根据其依赖文件依次寻找创建这些依赖文件的规则。首先为第一个依赖文件寻找创建规则,如果第一个依赖文件依赖于其它文件,则同样为这个依赖文件寻找创建规则,直到为所有的依赖文件找到合适的创建规则。之后make从最后一个规则回退开始执行,最终完成终极目标的第一个依赖文件的创建和更新.对于规则中的每一个依赖文件,使用同样方式去重建它,在完成对所有依赖文件的重建之后,最后一步才是重建此规则的目标。(整个是一个递归的过程,类似于编译原理中表达式的解析)。

      

      

  • 相关阅读:
    2020软件工程作业04
    2020软件工程作业02
    2020软件工程作业01
    2020软件工程个人作业06——软件工程实践总结作业
    【软件工程小组-冲刺日志(第二天)】
    软件工程逃课小组 【团队名称-凡事预则立】
    2020软件工程作业——团队02
    2020软件工程作业05
    2020软件工程作业00——问题清单
    2020软件工程作业04
  • 原文地址:https://www.cnblogs.com/RbtreeLinux/p/2266819.html
Copyright © 2011-2022 走看看