关闭

Makefile 中$@ $^ $< 解释

208人阅读 评论(0) 收藏 举报
分类:

Makefile 中$@  $^ $< 解释

 
给个例子你分析一下(来自国内开源项目g-bios
g-bios/app/net/Makefile
----------------------------------------------------------------------------------------------------------------------------------------
OBJS = ifconfig.o tftp_util.o ping.o #OBJS:依赖列表
SRCS = $(OBJS:.o=.c)
BUILT_IN_OBJ = ./init BUILT_IN_OBJ:表示目标
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
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:539701次
    • 积分:9753
    • 等级:
    • 排名:第2063名
    • 原创:286篇
    • 转载:1096篇
    • 译文:0篇
    • 评论:53条
    联系方式
    QQ群:413135688
    博客专栏
    文章分类
    最新评论