# ============================================================ # Makefile — 编译和运行 C 项目 # 用法: # make 编译生成可执行文件 # make run 编译并运行 # make clean 删除编译产物 # make help 查看帮助 # ============================================================ # ---------- 编译器与参数 ---------- CC = gcc CFLAGS = -Wall -Wextra -O2 -std=c99 LDFLAGS = RM = rm -f # ---------- 项目结构 ---------- TARGET = app SRCS = main.c OBJS = $(SRCS:.c=.o) # ---------- 默认目标:编译 ---------- $(TARGET): $(OBJS) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # ---------- 运行 ---------- run: $(TARGET) ./$(TARGET) # ---------- 清理 ---------- clean: $(RM) $(OBJS) $(TARGET) # ---------- 帮助 ---------- help: @echo "用法:" @echo " make 编译" @echo " make run 编译 + 运行" @echo " make clean 清理" @echo " make help 显示本帮助" # 标记为伪目标,避免与同名文件冲突 .PHONY: all run clean help