make
是一个在 Unix 和类 Unix 系统(如 Linux)上广泛使用的自动化构建工具。它可以根据文件依赖关系自动编译源代码,并执行一系列的任务,如编译、链接等。make
通过读取名为 Makefile
的文件来获取构建规则。
make
是一个标准工具,在大多数 Unix-like 系统上都可用。make
工具本身是一个命令行工具,但是有许多变体和扩展,如:
make
实现,提供了丰富的功能和灵活的规则定义。make
实现,与 GNU Make 在语法和功能上有所不同。make
工具,而是一个跨平台的构建系统生成器,可以生成 Makefile
,也可以生成其他构建系统的配置文件。make
的源代码可以在其官方网站或者 GNU 的官方 Git 仓库中找到。GNU Make 的源代码是用 C 语言编写的,你可以下载并查看其内部实现。
# 编译 C 源文件的简单 Makefile 示例
CC = gcc
CFLAGS = -Wall -g
# 目标可执行文件
TARGET = myprogram
# 源文件列表
SRCS = main.c foo.c bar.c
# 目标文件列表,通过替换 .c 为 .o 得到
OBJS = $(SRCS:.c=.o)
# 默认规则
all: $(TARGET)
# 链接规则
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $(TARGET) $(OBJS)
# 编译规则
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 清理规则
clean:
rm -f $(OBJS) $(TARGET)
在这个例子中,make
会根据源文件列表自动编译每个 .c
文件为 .o
文件,并最终链接成一个可执行文件 myprogram
。执行 make clean
可以清理生成的文件。
领取专属 10元无门槛券
手把手带您无忧上云