当前位置: 首页 > news >正文

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
http://www.dtcms.com/a/315217.html

相关文章:

  • 刷题记录0804
  • app-1
  • 1行JS实现无限滚动加载(Intersection Observer版)
  • vcpkg在vs/vscode下用法
  • 南水北调中线工程图件 shp数据
  • 飞算 JavaAI 操作全流程体验:一次面向纯 Java 项目的智能提效之旅
  • 【无标题】标准 I/O 中的一些函数,按功能分类说明其用法和特点
  • JavaScript中的作用域、闭包、定时器 由浅入深
  • idea添加gitlab访问令牌
  • 【Canvas与文字】生存与生活
  • 2025年08月04日Github流行趋势
  • 工控领域协议之Modbus
  • prometheus应用CounterGauge
  • prometheus应用demo(一)接口监控
  • 【MySQL04】:基础查询
  • 初识SpringBoot
  • Java计算机网络面试题
  • 【BUUCTF系列】[SUCTF 2019]EasySQL1
  • script标签放在header里和放在body底部里有什么区别?
  • 鸿蒙开发元组
  • 单点登录(SSO)全面解析:原理、实现与应用
  • 中标喜讯 | 安畅检测成功中标海南工信大脑(二期)软件测评服务
  • 基于SpringBoot的OA办公系统的设计与实现
  • docker-compose一键部署Springboot+Vue前后端分离项目
  • 映射公式解常微分方程,偏微分方程
  • JVM-自动内存管理-运行时数据区域
  • createAsyncThunk
  • 结构体数组2-单向链表
  • MySQL详解(一)
  • SAP_MMBASIS模块-选择屏幕变式添加动态字段赋值