Make 起步

构建的定义

  • 代码变成可执行文件,叫做编译(compile)
  • 先编译这个文件,然后编译那个文件(即编译的安排),叫做构建(build)

Make 是什么

Make 是最常用的构建工具,诞生于 1977 年,主要用于 C 语言项目。

实际上,任何只要某个文件有变化,就要重新构建的项目,都可以用 Make 构建。

Make 使用

在当前目录下创建一个 Makefile 文件,然后执行 make

或执行 make target,其中的 target 是指 Makefile 文件中任一个目标。

Makefile 文件

make 只是一个根据指定的 Shell 命令进行构建的工具。

它的规则很简单,你规定要构建哪个文件、它依赖哪些源文件,当那些文件有变动时,如何重新构建它。

构建规则都写在 Makefile 文件里面,要学会如何 Make 命令,就必须学会如何编写 Makefile 文件。

规则

Makefile 文件由一系列规则(rules)构成。每条规则的形式如下:

<target> : <prerequisites>
[tab]  <commands>
  • 一个目标(target)就构成一条规则。目标是文件名或者操作的名字(伪目标 phony target)
  • 前置条件(prerequisites)通常是一组文件名,之间用空格分隔
  • 命令(commands)表示如何更新目标文件,由一行或多行的 Shell 命令组成

前置条件(prerequisites)指定了目标(target)重新构建的判断标准:

  • 只要有一个前置文件不存在
  • 前置文件有过更新(前置文件的 last-modification 时间戳比目标的时间戳新)

Makefile 语法

  • 注释:用井号(#)表示
  • 回声(echoing):make 会先打印每条命令,然后执行,这个打印称为回声
  • 通配符(wildcard):用来指定一组符合条件的文件名
  • 模式匹配:对文件名进行类似正则运算的匹配
  • 变量:用等号初始化并赋值自定义变量。调用时,变量需要放在 $()
  • 赋值符:提供四种赋值运算符(= := ?= +=
  • 内置变量(Implicit Variables):$(CC) 指向当前使用的编译器
  • 自动变量(Automatic Variables): $@ 指代当前目标,$^ 指代所有前置条件
  • 判断和循环:Makefile 使用 Bash 语法,完成判断和循环
  • 函数:使用格式如 $(function arguments)${function arguments}

Make 命令零基础教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值