makefile中一些符号

来源:互联网 发布:龙少微软软件工作室 编辑:程序博客网 时间:2024/05/16 17:50

a.o : b.c c.c
$?所有比目标新的依赖目标的集合
$^代表所有依赖文件(b.c, c.c)
$@代表规则的目标文件(a.o)
$<代表第一个依赖文件(b.c)
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
在u-boot的makefile中,有这样里两段
smdk2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

第一个@是让编译时不显示这条命令。。。

第二个@并不是单独的,而是和$一起构成$@,表示目标(注意是整个目标,包括扩展名的),在这里的意思就是smdk2410_config ,s:a=b的意思是把s中的a用b替换, 
这样就很清楚了,$(@:_config=)等价于(smdk2410_config:_config=),是要把smdk2410_config转变为smdk2410

0 0
原创粉丝点击