Makefile中的$(@:_config=)什么意思?
Posted 请给我倒杯茶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Makefile中的$(@:_config=)什么意思?相关的知识,希望对你有一定的参考价值。
本文转载自:https://blog.csdn.net/a8082649/article/details/24252093
已经编译出bin文件了,现在研究一下makefile,把遇到的问题记录下来:
1. $(@:_config=)什么意思?
网上查到如下解释
这里使用了Makefile中的替换引用规则,类似常看到的例子 obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件.
这里是一样的道理:
$(@:_config=)
@代表的是target smdk2410_config, 那么$(@:_config=)就是将smdk2410_config中的_config替换为空!得到smdk2410; 你可以用echo自己打印出来看看就明白了!
smdk2410_config : unconfig
@echo $(@:_config=) # 打印出来看看吧
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
但有一点不明白@代表目标吗?印象里好像是[email protected] 才代表目标,做了个测试 “
all:
@echo [email protected] 输出是all
@echo @ 输出是@
@echo $(@) 输出是all
所以我认为符号@在$()中和[email protected]是一样的
2. 目标 :依赖
命令
命令是否可以直接是一个文件名?
做了个测试证明可以:
在外面建立一个makecfg 里面输入 echo i am here !
在makefile 里
all:
@(路径/makecfg)
输入命令make all
就会输出 i am here !
以上是关于Makefile中的$(@:_config=)什么意思?的主要内容,如果未能解决你的问题,请参考以下文章
uboot主Makefile之9——2589行 x210_sd_config目标
uboot主Makefile之11——源码目录下mkconfig和config.mk文件的区别