Makefile 中$@ $^ $< 解释

255人阅读 评论(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
查看评论

makefile中的注释

$(Q)@: Q= 或者 Q=@ 那么这句就是 @: 或者@@: 其实都是一样的 @: 解释一下: makefile里面命令前加@表示不显示源命令。试试就可以了。加多个和加一个...
  • yi412
  • yi412
  • 2015-09-04 15:37:25
  • 3065

通用的Makefile及解释

######################################   # Copyright (c) 1997 George Foot (george.foot@merton.ox.ac...
  • xiaojun111111
  • xiaojun111111
  • 2016-07-25 17:27:50
  • 636

Makefile详解-书写规则

书写规则 ———— 规则包含两个部分,一个是依赖关系,一个是生成目标的方法。 在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这...
  • u012313689
  • u012313689
  • 2016-11-02 15:47:31
  • 803

makefile的注释

#TAGET代表应用程序 TARGET          = test_xxx #交叉编译连前缀 CROSS_COMPILE   = arm-linux- #交叉编译工具arm-linux-g...
  • liran32598
  • liran32598
  • 2012-04-24 17:46:01
  • 21334

Makefile 中$@ $^ $< 解释

给个例子你分析一下(来自国内开源项目g-bios) g-bios/app/net/Makefile ------------------------------------------------...
  • wh8_2011
  • wh8_2011
  • 2016-11-29 09:13:57
  • 167

Android makefile讲解剖析

对于一个程序新手而言,好的IDE是他们追捧的对象。但当他接触的代码多了之后,就会逐渐发现IDE不够用了,因为有好多东西用IDE是不好做的, 例如自动编译,测试,版本控制,编译定制等。这跟政治课上的一...
  • u011467537
  • u011467537
  • 2016-11-21 19:56:40
  • 657

解释一个 Makefile 文件

学习一门技术的目的就是要把它拿来使用,因此,对技术的研究不存在最高境界,只存在实不实用。Makefile的知识也杂七杂入挺多的,真讨厌GNU那帮人一天在那里没事发明新东西,虽然说都有用,但我们学起来就...
  • xiaoyaoxiaoshenxian
  • xiaoyaoxiaoshenxian
  • 2015-09-11 13:09:49
  • 262

gnu-make中文手册

  • 2015年01月29日 16:19
  • 1.31MB
  • 下载

一个MAKEFILE的详细解释

#定义变量CC CC = g++ ############################################################# #定义变量 ‘$’引用变量,-I 给...
  • ivension
  • ivension
  • 2012-04-23 00:40:34
  • 4555

Linux上源代码和二进制文件分离的Makefile写法

Linux上源代码和二进制文件分离的Makefile写法
  • headman
  • headman
  • 2015-03-05 12:14:44
  • 738
    个人资料
    持之以恒
    等级:
    访问量: 78万+
    积分: 1万+
    排名: 1855
    联系方式
    博客专栏
    文章分类
    最新评论