[原]Make 命令(持续更新)

楚东方 18/01/12 12:49:41

一. 背景

Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件有变化,就要重新构建
的项目,都可以用Make构建。

make只是一个根据指定的Shell命令进行构建的工具。它的规则很简单,你规定要构建哪个文件、它依赖哪些源文件,当那些
文件有变动时,如何重新构建它。

二. Make

Make是一个很简单命令.

make .  //构建当前目录

但先编译哪个文件,哪个文件为哪个文件的依赖,都在一个名为Makefile的文件中描述,接下来看一下Makefile文件.


三. Makefile

3.1组成

<target> : <prerequisites> 
[tab]  <commands>

<目标> : <前置条件> 
[tab]  <命令>
上面第一行冒号前面的部分,叫做"目标"(target),冒号后面的部分叫做"前置条件"(prerequisites);第二行必须
由一个tab键起首,后面跟着"命令"(commands)。

下面是每个组成的详细讲解:

1. 目标(target)

一个目标(target)就构成一条规则。目标通常是文件名,指明Make命令所要构建的对象. 目标可以是一个文件名,也可以
是多个文件名,之间用空格分隔。
除了文件名,目标还可以是某个操作的名字,这称为"伪目标"(phony target)。
clean:
      rm *.o

.PHONY: clean//声明为伪目标
clean:
        rm *.o temp

2. 前置条件(prerequisites)

前置条件通常是一组文件名,之间用空格分隔。它指定了"目标"是否重新构建的判断标准:只要有一个前置文件不存在,或者
有过更新(前置文件的last-modification时间戳比目标的时间戳新),"目标"就需要重新构建。

简单描述就是说,在编译当前文件之前要确定某些文件已经存在,不存在就报错.
result.txt: source.txt
    cp source.txt result.txt
//在生成result.txt时,要确保sourcs.txt文件存在
小技巧
source: file1 file2 file3

$ make source
//可以一下子生成三个文件

3. 命令(commands)

命令(commands)表示如何更新目标文件,由一行或多行的Shell命令组成。它是构建"目标"的具体指令,它的运行结果通常就是生成目标文件。
.RECIPEPREFIX = >
all:
> echo Hello, world

参考资料:Make教程

作者:chudongfang2015发表于2018/1/12 12:49:41 原文链接
阅读:0评论:0查看评论