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

Makefile工程简单模板

一个简单的Makefile工程模板

# 定义目标文件名
TARGET		  	?= bsp# 编译器选项
CROSS_COMPILE 	?= arm-linux-gnueabihf-
CC 				:= $(CROSS_COMPILE)gcc
LD				:= $(CROSS_COMPILE)ld
OBJCOPY 		:= $(CROSS_COMPILE)objcopy
OBJDUMP 		:= $(CROSS_COMPILE)objdump# 头文件目录
INCDIRS 		:= imx6ul \bsp/clk \bsp/led \bsp/delay 
# 源文件目录		   			   
SRCDIRS			:= project \bsp/clk \bsp/led \bsp/delay INCLUDE			:= $(patsubst %, -I %, $(INCDIRS))# 寻找所有的 .c 和 .s 源文件
SFILES			:= $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S))
CFILES			:= $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c))# 所有源文件的文件名(使用notdir去掉路径)
SFILENDIR		:= $(notdir  $(SFILES))
CFILENDIR		:= $(notdir  $(CFILES))# .o文化对应目录
SOBJS			:= $(patsubst %, obj/%, $(SFILENDIR:.S=.o))
COBJS			:= $(patsubst %, obj/%, $(CFILENDIR:.c=.o))# 所有.o文件的集合
OBJS			:= $(SOBJS) $(COBJS)# 指定搜索路径
VPATH			:= $(SRCDIRS).PHONY: clean$(TARGET).bin : $(OBJS)$(LD) -Timx6ul.lds -o $(TARGET).elf $^$(OBJCOPY) -O binary -S $(TARGET).elf $@$(OBJDUMP) -D -m arm $(TARGET).elf > $(TARGET).dis$(SOBJS) : obj/%.o : %.S$(CC) -Wall -nostdlib -c -O2  $(INCLUDE) -o $@ $<$(COBJS) : obj/%.o : %.c$(CC) -Wall -nostdlib -c -O2  $(INCLUDE) -o $@ $<clean:rm -rf $(TARGET).elf $(TARGET).dis $(TARGET).bin $(COBJS) $(SOBJS)
http://www.jsqmd.com/news/36007/

相关文章:

  • 实用指南:Visual Studio下载安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
  • 升鲜宝 供应链SCM 一体化自动化部署体系说明
  • 折腾笔记[37]-使用ML.NET进行文本情感分类
  • 从API调用到智能体编排:GPT-5时代的AI开发新模式 - 教程
  • Spring AI Alibaba 项目源码学习(一)-整体介绍
  • 技术架构师到CIO如何转型
  • Layout
  • OS 任务调度
  • 【Linux】初始线程 - 实践
  • nest目录结构
  • 高三日记
  • 计算机毕设项目推荐:基于SpringBoot+Vue的非物质文化遗产再创新系统 - 教程
  • 基于实际字节码解析Python链式赋值:从ls1[i]=2到a=b=c=10的完整机制
  • 实用指南:基于python写的PDF表格提取到excel文档
  • 企业微信scrm源码开发-渠道活码数据库表设计
  • Python助力数据分析如何用Pandas高效处理大规模资料
  • SDD驱动开发
  • Redis 缓存 - 实践
  • 动态规划:使用最小花费爬楼梯
  • OddAgent:轻松手搓一个你自己的“小艺”、“小爱同学”
  • 使用UnsafeAccessor 访问私有字段
  • 数组参数的函数传递
  • 【狂神说Java】Mybatis最新完整教程IDEA版通俗易懂 P1什么是Mybatis P2第一个Mybatis程序
  • AI agent framework from microsoft
  • 《从 0 到 1 搭建个人技术博客:Hexo+GitHub Pages 完整指南(2024 优化版)》
  • 《Spring Boot 实战:搭建 RESTful API 接口服务(含 Swagger + 异常处理)》
  • 《程序员高效工作流:5 款必备工具 + 时间管理方法,告别无效加班》
  • 2025/11/02 LGNOIpR22
  • locked ambition
  • NOIP2025模拟4