📜  Makefile-示例(1)

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

Makefile 示例

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 示例。你可以根据自己的工程项目需要修改和扩展这个示例,以满足不同的构建需求。