当前位置: 首页 > 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.lryc.cn/news/610391.html

相关文章:

  • 数据与模型优化随机森林回归进行天气预测
  • CLM陆面过程模式实践技术应用
  • 攻防世界-Mobile-easyjni
  • 8.高斯混合模型
  • 基于Springboot+Mybatis+thymeleaf的个人博客系统的设计与实现
  • 监控插件(二)prometheus(2)API CounterGauge
  • Linux下PXE服务器搭建
  • EdgeView for macOS:解决图像管理痛点的利器
  • 【BUUCTF系列】[极客大挑战 2019]LoveSQL 1
  • Scrapy爬虫集成MongoDB存储
  • FinalShell 跳板机proxyjump使用
  • Go 与 Python 爬虫代码实操对比
  • Python接口自动化测试之之request
  • SpringMvc跨域配置方法详解
  • Jmeter进行性能并发测试
  • 设计模式-创建型-工厂模式
  • Clion STM32CubeMX LED闪灯
  • CentOS卸载、安装MySQL8(yum操作)
  • 【QT】常⽤控件详解(三)常用按钮控件PushButton RadioButton CheckButton Tool Button
  • Kali基础知识点【2】
  • 查看 Java 字节码文件:jclasslib 的使用
  • C++高频知识点(十四)
  • 文件包含篇
  • Linux中netstat详细使用指南
  • MySQL偏门但基础的面试题集锦
  • webm 读取解析
  • 并发编程常用工具类(上):CountDownLatch 与 Semaphore 的协作应用
  • Linux 使用 firewalld :开放端口与常用操作指南
  • 【机器学习】(算法优化二)提升算法之:AdaBoost与随机梯度
  • C++多线程同步:深入理解互斥量与事件机制