📜  自我记录 makefile - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:27:44.205000             🧑  作者: Mango

自我记录 makefile - Shell-Bash

在进行软件开发时,我们通常需要编译、打包和部署我们的程序。为了简化这些任务,我们可以使用 Makefile 工具来自动化这些流程。在本文中,我们将介绍如何编写 Makefile。

Makefile 的基本概念

Makefile 是一个文本文件,其中包含一些规则,可以自动化地构建一个项目。每个规则由一个目标、一些依赖以及一些命令组成。当目标不存在或者比它的某个依赖更新时,Make 程序会自动执行规则中的命令。

例如,下面是一个简单的 Makefile:

all: hello

hello: main.c
	gcc -o hello main.c

其中,allhello 是两个目标,main.chello 目标的一个依赖。当 hello 不存在或者 main.chello 新时,Make 程序会执行 gcc -o hello main.c 命令来生成 hello

Makefile 的语法

Makefile 的语法有一些特殊的规则,需要注意。下面是一些常用的语法:

注释

注释使用 # 开头,直到行末为止。

变量

变量用于存储程序的路径、编译工具、编译选项等信息。

CC=gcc
CFLAGS=-Wall -Werror

变量使用 $ 符号引用,例如:

$(CC) $(CFLAGS) -o hello main.c
目标

目标表示要生成的程序或者文件。

all: hello
依赖

依赖表示目标所依赖的文件或者目录。

hello: main.c
命令

命令是执行编译、打包和部署等任务的具体操作。

gcc -o hello main.c

命令必须以 Tab 键开头,不能使用空格键。

Makefile 的示例

下面是一个完整的示例 Makefile:

CC=gcc
CFLAGS=-Wall -Werror

all: hello

hello: main.c
	$(CC) $(CFLAGS) -o hello main.c

clean:
	rm -f hello

其中,clean 目标用于清理生成的程序。

总结

Makefile 是一个非常强大的自动化工具,在软件开发中得到广泛应用。通过本文的介绍,你应该能够了解 Makefile 的基本概念和语法,以及如何使用 Makefile 自动化构建项目。