Makefile中三个自动变量$^,$@,$
2024-06-30 00:17:19
以下内容源于http://bbs.chinaunix.net/thread-1596089-1-1.html,如有 侵权,请告知删除。
所谓自动变量,就是这种变量会把模式中所定义的一系列的文件自动地挨个取出,直至所有的符合模式的文件都取完了。这种自动化变量只应出现在规则的命令中。
以一个例子说明
OBJS = ifconfig.o tftp_util.o ping.o
SRCS = $(OBJS:.o=.c)PHONY += all
all : $(BUILT_IN_OBJ) $(BUILT_IN_OBJ) : $(OBJS)$(LD) $(LDFLAGS) -r $^ -o $@ //第一个例子$(OBJS) : $(SRCS)$(CC) $(CFLAGS) -c $^ //第二个例子PHONY += clean
clean :@rm -vf *.o.PHONY : $(PHONY)
注:$(BUILT_IN_OBJ) 和 $(PHONY)来自上层目录g-bios/app/Makefile,可以不用理解。
$@ 代表目标集合,第一个例子中为$(BUILT_IN_OBJ) ;
$^ 代表所有的依赖对象,第一个例子中$^为$(OBJS),即 ifconfig.o tftp_util.o ping.o;
第二个例子中$^为$(SRCS),即$(OBJS:.o=.c) (Makefile解释后为: ifconfig.c tftp_util.c ping.c)
$< 代表第一个依赖对象
如果第一个例子修改为下面的内容,则$<表示ifconfig.o。
$(BUILT_IN_OBJ) : $(OBJS)$(LD) $(LDFLAGS) -r $< -o $@
最新文章
- TIANCHI-全球城市计算挑战赛-完整方案及关键代码分享(季军)
- java怎么缓存行填充_为什么java的Exchanger.Slot缓存行填充像这样?
- ip route / ip rule /iptables 配置策略路由
- mysql if 多个_MySQL使用IF语句CONCAT多个字段
- 深度学习logit是什么?
- Error--解决使用Application Loader提交ipa包审核时的报错:ERROR ITMS-90168: The binary you uploaded was invalid....
- 数据库开发这点事 中文PDF下载
- Altium Designer 15 PCB图层详解
- 网吧服务器ip地址修改,BXP服务器下的网吧ip地址怎么更改
- 什么是P问题、NP问题和NPC问题
- 学习笔记16-HC05
- OSChina 周日乱弹 —— 跨界程序员
- 制作u盘winpe启动盘_如何下载优启通U盘启动盘制作工具并制作启动盘?
- PostgreSQL下载与安装(Windows版)
- 银行的SWIFT CODE 和 IBAN CODE 和 ABA CODE 分别是什么意思
- 【总结】1438- 你想知道的前后端协作规范都在这了
- 【渝粤题库】广东开放大学Photoshop图像设计 形成性考核
- java如何利用JNative调用dll文件
- YII2日常所用的教程
- MarkDown语法快捷键
热门文章
- linux 下php多版本安装
- ASP.NET-权限管理五张表
- 44.Android之Shape设置虚线、圆角和渐变学习
- hdu 3864 素数分解
- C++构造函数/析构函数 设置成private的原因
- 使用keil建立标准STM32工程模版(图文详细版!)
- Mysql数据导入导出
- 一个立即关闭显示器的小软件(Masm开发,只有3KB大小)
- DuangDuangDuang!码云项目的 Readme.md 特殊技能
- 帮助孩子学会感恩_页数204_出版日期2015.03_完整版PDF电子书下载