写一个makefile文件 用于多文件编译
时间: 2023-04-02 07:02:57 浏览: 134
好的,我可以回答这个问题。以下是一个示例 makefile 文件,用于多文件编译:
```
CC = gcc
CFLAGS = -Wall -Wextra -Werror
SRC_DIR = src
OBJ_DIR = obj
BIN_DIR = bin
SRCS = $(wildcard $(SRC_DIR)/*.c)
OBJS = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS))
TARGET = $(BIN_DIR)/my_program
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) -c -o $@ $<
.PHONY: clean
clean:
rm -f $(OBJS) $(TARGET)
```
在这个 makefile 文件中,我们定义了一些变量,如编译器 CC、编译选项 CFLAGS、源代码目录 SRC_DIR、目标文件目录 OBJ_DIR 和可执行文件目录 BIN_DIR。我们使用通配符和模式替换来自动化地生成源文件列表和目标文件列表。然后,我们定义了一个目标文件 $(TARGET),它依赖于所有的目标文件 $(OBJS)。我们使用 $@ 和 $^ 来引用目标文件和依赖文件列表。最后,我们定义了一个伪目标 .PHONY: clean,用于清理生成的目标文件和可执行文件。
你可以根据自己的项目需要修改这个 makefile 文件,例如添加更多的源文件、库文件、头文件等。
阅读全文