# 定义编译器 CC = gcc INCLUDE_PATH = ./ # 用户可以指定输出文件夹 OUTPUT_DIR = ./build # 查找所有的 .c 文件和对应的 .h 文件 SOURCES = $(wildcard $(INCLUDE_PATH)/*.c) HEADERS = $(wildcard $(INCLUDE_PATH)/*.h) OBJECTS = $(patsubst %.c,$(OUTPUT_DIR)/%.o,$(SOURCES)) # 定义最终可执行文件的路径 TARGET = $(OUTPUT_DIR)/program # 默认目标 all: $(TARGET) # 定义每个目标文件的依赖关系 $(OUTPUT_DIR)/%.o: %.c $(HEADERS) $(CC) $(CFLAGS) -c $< -o $@ # 生成可执行文件 $(TARGET): $(OBJECTS) $(CC) -o $(TARGET) $(OBJECTS) # 清理生成的文件 clean: rm -rf $(OUTPUT_DIR)/* $(TARGET)