一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 4084|回复: 1

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

[复制链接]
发表于 2017-5-2 16:56 | 显示全部楼层 |阅读模式
已经编译出bin文件了,现在研究一下makefile,把遇到的问题记录下来:
. C2 b$ y" X% d0 U( v8 h; [1 T
4 T- J" _* T, C: s, p, I" g3 n6 u' M1.  $(@:_config=)什么意思?
; J0 I% f+ y+ N网上查到如下解释. b2 \2 u* Q! ^
这里使用了Makefile中的替换引用规则,类似常看到的例子 obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件.
$ I+ V  ^) u6 R8 }; y7 v这里是一样的道理:1 u8 `3 P$ S: K  q, _0 A$ `8 S
$(@:_config=)
  y0 N" l6 e$ g ' l0 j' V( m8 s3 L; x: A
@代表的是target smdk2410_config, 那么$(@:_config=)就是将smdk2410_config中的_config替换为空!得到smdk2410; 你可以用echo自己打印出来看看就明白了!
0 x0 j* V. q3 x0 F
( d  G7 I6 F* r0 F1 M, S* msmdk2410_config : unconfig  g# G& W6 u( k$ ~3 z6 Q7 \1 s: U
  @echo $(@:_config=) # 打印出来看看吧
7 v& }% L5 w8 ~. q8 K  @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
; B5 b7 s' k4 ]& Z但有一点不明白@代表目标吗?印象里好像是$@ 才代表目标,做了个测试 “% c0 \  g: m! f( z* n# }# t5 ^
all:% L  w4 a( t7 L0 ^8 P9 {
   @echo $@   输出是all" C. F& v% p) C  O
   @echo @    输出是@
9 q% \- F( Y4 G" Q) _   @echo $(@) 输出是all
- y. _8 O' |; B$ T所以我认为符号@在$()中和$@是一样的
& ?/ j* h+ v+ ]5 l8 H2 |2. 目标 :依赖$ Z, ~/ @2 L$ i/ v* }
        命令
! P: [- s, Z- ^0 ^  命令是否可以直接是一个文件名?
3 N" ~: S/ r4 G) g1 Y做了个测试证明可以:" O  e3 y5 ~: A3 u& Y1 z; \
在外面建立一个makecfg  里面输入 echo i am here !
% n! t* y& O! i& l7 ]+ n% B! H在makefile 里  W* v) m8 u5 ~; b
all:, T- V( R; ?" O( _
    @(路径/makecfg)
# l, }: H' x* ^" W8 P4 ]( y$ X
4 _0 t+ I" V5 }9 J' @输入命令make all
; v5 Q$ X. F  d, w& Q6 Z就会输出 i am here !
 楼主| 发表于 2017-5-2 17:10 | 显示全部楼层
越看越发现makefile功能实在强大,配合shell 一起用所向无敌
回复

使用道具 举报

本版积分规则

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

GMT+8, 2025-10-27 15:56 , Processed in 0.030280 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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