首页 > 其他 > 详细

makefile中的$< $@ $^解释

时间:2021-06-17 20:26:59      阅读:20      评论:0      收藏:0      [点我收藏+]
ttp://bbs.chinaunix.net/thread-1596089-1-1.html

给个例子你分析一下(来自国内开源项目 g-bios
g-bios/app/net/Makefile
----------------------------------------------------------------------------------------------------------------------------------------
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)
$< 代表第一个依赖对象 前面例子修改如下:
$(BUILT_IN_OBJ) : $(OBJS)
            $(LD) $(LDFLAGS) -r $< -o $@
则$<表示为ifconfig.o

makefile中的$< $@ $^解释

原文:https://www.cnblogs.com/alix-1988/p/14894531.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!