Makefile文件写法模板

针对文件结构为:

项目根目录/
├── Makefile             # 构建脚本
├── bin/                 # 存放最终生成的可执行文件(main)
├── src/                 # 存放所有 .c 源文件
├── inc/                 # 存放所有 .h 头文件
├── obj/                 # (Makefile 自动生成)存放编译的 .o 目标文件
└── dep/                 # (Makefile 自动生成)存放 .d 依赖文件(头文件依赖关系)

可以使用以下的Makefile文件模板来自动编译:

# 编译器设置
CC := gcc
CFLAGS := -I./inc -Wall -Wextra -g
LDFLAGS := 

# 目录设置
SRC_DIR := src
INC_DIR := inc
BIN_DIR := bin
OBJ_DIR := obj
DEP_DIR := dep

# 获取所有源文件
SRCS := $(wildcard $(SRC_DIR)/*.c)
OBJS := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS))
DEPS := $(patsubst $(SRC_DIR)/%.c,$(DEP_DIR)/%.d,$(SRCS))

# 最终目标
TARGET := $(BIN_DIR)/main

# 默认目标
all: $(TARGET)

# 链接目标文件生成可执行文件
$(TARGET): $(OBJS)
	@mkdir -p $(BIN_DIR)
	$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@

# 编译源文件生成目标文件,并生成依赖文件
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
	@mkdir -p $(OBJ_DIR)
	@mkdir -p $(DEP_DIR)
	$(CC) $(CFLAGS) -MMD -MP -MF $(DEP_DIR)/$*.d -c $< -o $@

# 包含自动生成的依赖文件
-include $(DEPS)

# 清理所有生成的文件(.o, .d, 可执行文件)
clean:
	rm -rf $(OBJ_DIR) $(DEP_DIR) $(BIN_DIR)

.PHONY: all clean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值