头图

如果你是命令行重度使用者,学习 Makefile 将可以大大提高你的开发效率,下面简单介绍一下 Makefile 的知识和使用方式。

Makefile 是一种包含一组指令来编译和构建软件项目的文件。

Makefile 文件通常包含一组规则和依赖关系,以指定如何将源代码编译成可执行文件或库。

当执行 make 命令时,make 工具将解析 Makefile 文件,并根据定义的规则和依赖关系来执行所需的操作,以生成最终的目标文件。

Makefile 是一个常用的构建工具,尤其在 Unix 和 Linux 系统上广泛使用。

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

规则语法

target ... : prerequisites ...
    command
    ...

上面第一行冒号前面的部分,叫做"目标"(target),冒号后面的部分叫做"前置条件"(prerequisites);

第二行必须由一个tab键起首,后面跟着"命令"(commands)。

"目标"是必需的,不可省略;"前置条件"和"命令"都是可选的,但是两者之中必须至少存在一个。

每条规则就明确两件事:构建目标的前置条件是什么,以及如何构建。

下面就详细讲解,每条规则的这三个组成部分。

示例文件

.PHONY: test #.PHONY 伪目标,代表无论 test 文件或目录是否存在都会执行 make test 命令
txt = Hello World #Makefile 允许使用等号自定义变量。

all: clear test php #当执行 make 不带其他命令时,默认执行第一条

python:
    -python vv #命令前加 - 代表执行错误继续执行下面的命令
    php -v #井号(#)在Makefile中表示注释。

php:
    @php -v #正常情况下,make会打印每条命令,然后再执行,这就叫做回声(echoing)。在命令的前面加上@,就可以关闭回声。

clear:
    clear

test:
    @echo $(txt) #使用变量
    @echo =============

这是一篇比较简洁的文章,希望可以让您对 Makefile 有一个基本了解。

Makefile 教程:https://seisman.github.io/how-to-write-makefile/index.html


Nick同学
1 声望0 粉丝