# # Makefile for base example # include ./make.h # 目标和源文件 TARGETS = fork execlp getSum SOURCES = $(wildcard $(SRC_DIR)/*.c) # 找到所有的 .c 文件 OBJECTS = $(patsubst $(SRC_DIR)/%.c,%.o,$(SOURCES)) # 将 .c 替换为 .o # 调试标志 DEBUG_FLAGS = -g -O0 CFLAGS += $(DEBUG_FLAGS) # 确保包含调试信息 # 默认目标 all: $(TARGETS) # 调试目标(与preLaunchTask对应) debug: CFLAGS += -DDEBUG -Wall -Wextra debug: $(TARGETS) # 链接目标文件生成可执行文件 fork: fork.o $(CC) -o fork fork.o execlp: execlp.o $(CC) -o execlp execlp.o getSum: getSum.o $(CC) -o getSum getSum.o # 从 .c 文件编译生成 .o 文件 %.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) $(COMMON_INCLUDE_DIRS) -c $< -o $@ # 清理目标 clean: $(RM) -f $(TARGETS) $(OBJECTS) *.o # 运行目标 run-fork: fork ./fork run-execlp: execlp ./execlp # GDB调试目标 gdb-fork: fork gdb ./fork gdb-execlp: execlp gdb ./execlp gdb-fork: fork gdb ./fork gdb-execlp: getSum gdb ./getSum # 安装目录结构(如果需要) install-dirs: mkdir -p $(SRC_DIR) $(BUILD_DIR) .PHONY: all debug clean run-fork run-execlp gdb-fork gdb-execlp install-dirs