zoukankan      html  css  js  c++  java
  • Makefile一些规则

    一、Makefile 的规则
    在讲述这个 Makefile 之前,还是让我们先来粗略地看一看Makefile 的规则。
    target ... : prerequisites ...
    command
    ...
    ...
    target 也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标
    签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。
    prerequisites 就是,要生成那个target 所需要的文件或是目标。
    command 也就是make 需要执行的命令。(任意的Shell 命令)
    这是一个文件的依赖关系,也就是说,target 这一个或多个的目标文件依赖于prerequisites
    中的文件,其生成规则定义在command 中。说白一点就是说,prerequisites 中如果有一个以
    上的文件比target 文件要新的话,command 所定义的命令就会被执行。这就是Makefile 的
    规则。也就是Makefile 中最核心的内容。

    二、通过make命令即可执行Makefile或makefile文件。

    三、在makefile中可以使用变量,其变量就是一个字符串,可以理解成C语言中的宏

      比如: object = main.o hello.o

      于是,我们就可以很方便地在我们的 makefile 中以“$(objects)”的方式来使用这个变量了,

    四、makefile中的命令以tab按键开头

    五、:= 这种方法,前面的变量不能使用后面的变量,只能使用前面已定义好了的变量。

    六、还有一个比较有用的操作符是“?=”,先看示例:

      FOO ?= bar
      其含义是,如果 FOO 没有被定义过,那么变量FOO 的值就是“bar”,如果FOO 先前被定
      义过,那么这条语将什么也不做,其等价于:
      ifeq ($(origin FOO), undefined)
      FOO = bar
      endif

    七、我们可以使用“+=”操作符给变量追加值,如:

      objects = main.o foo.o bar.o utils.o
      objects += another.o

  • 相关阅读:
    python---模块与包
    python---迭代器与生成器
    python---装饰器
    Python---函数
    Python---文件操作
    Python---数据类型
    浅谈UBUNTU
    java 键盘输入多种方法
    动态规划解最长公共子序列问题
    线段树
  • 原文地址:https://www.cnblogs.com/ruigelwang/p/12550227.html
Copyright © 2011-2022 走看看