📅  最后修改于: 2023-12-03 15:17:31.336000             🧑  作者: Mango
Makefile 是一个用于构建和管理工程项目的脚本文件。它可以自动化编译、链接和安装程序,并处理工程中的依赖关系。Makefile 使用 Make 工具执行,可以在各种操作系统上使用。
以下是一个示例的 Makefile 文件,来演示如何编写一个简单的 Makefile:
# 指定编译器和编译选项
CC = gcc
CFLAGS = -Wall -Wextra
# 指定目标文件和依赖文件
TARGET = myprogram
SRCS = main.c foo.c bar.c
OBJS = $(SRCS:.c=.o)
# 默认构建目标
all: $(TARGET)
# 链接目标文件生成可执行文件
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
# 编译每个源文件生成目标文件
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 清理生成的文件
clean:
rm -f $(OBJS) $(TARGET)
在这个示例中,Makefile 定义了以下几个规则:
CC
:指定编译器为 gcc
。CFLAGS
:指定编译选项,这里设置了一些常用的警告标志。TARGET
:指定目标文件名为 myprogram
。SRCS
:列出所有的源文件。OBJS
:将源文件的扩展名 .c
替换为 .o
,指定目标文件名。接下来是几个规则的说明:
all
:默认构建目标,即执行 make
命令时会进行的操作。这里指定了 $(TARGET)
为构建目标。$(TARGET)
:链接目标文件生成可执行文件。依赖于 $(OBJS)
,即所有的目标文件。%.o
:将每个源文件编译为目标文件。使用了通配符 %
来匹配所有的源文件,并生成相应的目标文件。最后是一个用于清理生成文件的规则:
clean
:执行 make clean
命令时会执行的操作。使用 rm -f
命令删除生成的目标文件和可执行文件。以上就是一个简单的 Makefile 示例。你可以根据自己的工程项目需要修改和扩展这个示例,以满足不同的构建需求。