一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 2540|回复: 1
收起左侧

$(@:_config=)什么意思?

[复制链接]
发表于 2017-5-2 16:56 | 显示全部楼层 |阅读模式
已经编译出bin文件了,现在研究一下makefile,把遇到的问题记录下来:) ^- K0 U, T5 i+ S" G

. N+ m( E0 ]5 K0 ?  C  r( t4 {1.  $(@:_config=)什么意思?  f; J* p4 r/ [
网上查到如下解释
9 n3 ~6 ~0 P6 S: B2 F( ~# D0 e& L这里使用了Makefile中的替换引用规则,类似常看到的例子 obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件.
- o" E# Q' I# n& u这里是一样的道理:
7 T  {; P# ?' D  F) r( Y; D $(@:_config=) , b; H8 B& s2 S7 z
- c6 p/ i1 H% t7 E) b, V' p) X
@代表的是target smdk2410_config, 那么$(@:_config=)就是将smdk2410_config中的_config替换为空!得到smdk2410; 你可以用echo自己打印出来看看就明白了!
9 ?& A1 g2 p7 l- y7 o0 R5 _3 e+ m2 y5 I! F9 s/ T0 R) n
smdk2410_config : unconfig; {; ?8 K# z( \" |0 J5 h
  @echo $(@:_config=) # 打印出来看看吧
5 o  B$ o5 ]  V- Y: ~8 U0 Q  {- y  @$(MKCONFIG) $(@:_config=) ARM arm920t smdk2410 NULL s3c24x0
3 k' ?9 P( _$ b但有一点不明白@代表目标吗?印象里好像是$@ 才代表目标,做了个测试 “) k( n8 ]1 a1 Y
all:
" f+ m- t" r5 I# S' d/ b9 o- c1 R   @echo $@   输出是all) Z$ I9 s/ v& G5 l$ T9 W7 i
   @echo @    输出是@
; v5 i% j! _4 U! p7 V8 K  L   @echo $(@) 输出是all
$ J" {% v) s$ d  p. j5 B+ A% a0 h所以我认为符号@在$()中和$@是一样的9 n# p, @' r- Q* j' s
2. 目标 :依赖
' @- M5 ^4 N( M2 d; c        命令/ o- Q% @$ C! J
  命令是否可以直接是一个文件名?) g$ G) l$ h+ B  ^# |  L
做了个测试证明可以:) P& F0 T6 Q3 X9 _8 E0 E
在外面建立一个makecfg  里面输入 echo i am here !
. j4 m: `$ K: Y3 \. P/ u5 v) F$ A在makefile 里2 [( G9 Z( S! R$ W/ t) _# V
all:3 I! p/ ^4 P( @; ~3 k
    @(路径/makecfg)
+ ?- M' n3 p+ I! ` 1 D) {7 x; I) N' k
输入命令make all2 I; F: t1 o( e. P+ [% l! |
就会输出 i am here !
 楼主| 发表于 2017-5-2 17:10 | 显示全部楼层
越看越发现makefile功能实在强大,配合shell 一起用所向无敌

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-27 06:02 , Processed in 0.042897 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表