一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 4091|回复: 1

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

[复制链接]
发表于 2017-5-2 16:56 | 显示全部楼层 |阅读模式
已经编译出bin文件了,现在研究一下makefile,把遇到的问题记录下来:4 G$ q" |: f& e6 F6 }4 n6 r3 @
) i$ P( h) P8 m# y1 F
1.  $(@:_config=)什么意思?  u8 g% Q  ^8 x# A) t9 l
网上查到如下解释" n! _1 W5 Q6 o& e0 R
这里使用了Makefile中的替换引用规则,类似常看到的例子 obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件.
" p# p0 |7 V: a3 l& W; R8 Q  b7 q这里是一样的道理:/ @0 F4 W1 n% W  i
$(@:_config=)
9 I# Z+ a% L' y. @- C0 i& N9 }
9 V. }/ `$ N% X' v; ~! w @代表的是target smdk2410_config, 那么$(@:_config=)就是将smdk2410_config中的_config替换为空!得到smdk2410; 你可以用echo自己打印出来看看就明白了!   o/ N! Z! K4 \: E2 g

6 L) F7 {9 a( O( _- ]4 jsmdk2410_config : unconfig4 n( b% n2 f, V1 O5 X: Q
  @echo $(@:_config=) # 打印出来看看吧5 M' n* C5 o# z4 U) a. g
  @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
) t& ^8 y# e1 ^/ H( t但有一点不明白@代表目标吗?印象里好像是$@ 才代表目标,做了个测试 “5 y3 ^+ H- k- d9 ~; D
all:
% }. j- x5 i7 n$ w   @echo $@   输出是all
; s" u  D) O! v" d   @echo @    输出是@
& D" f) G$ a, [3 v7 [   @echo $(@) 输出是all. W9 F" c8 e% \+ k. S9 r0 N: B  _
所以我认为符号@在$()中和$@是一样的* Y3 M+ T* h/ G# d1 f
2. 目标 :依赖
: V3 t+ V# C; ?7 v2 G        命令9 X! _& X3 s& V
  命令是否可以直接是一个文件名?
, v; H% t2 b# x: G! p/ k做了个测试证明可以:# V/ B3 J/ c+ D
在外面建立一个makecfg  里面输入 echo i am here !
( g$ i' {* I* F2 u9 n8 b在makefile 里4 Y! q7 G! b* F7 F
all:
: |3 D% x  j9 Y2 T( n. x    @(路径/makecfg)2 T" {7 w8 A2 z

7 ~% G1 @9 @* d1 a输入命令make all2 K, G' [4 o/ [
就会输出 i am here !
 楼主| 发表于 2017-5-2 17:10 | 显示全部楼层
越看越发现makefile功能实在强大,配合shell 一起用所向无敌
回复

使用道具 举报

本版积分规则

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

GMT+8, 2025-10-28 20:10 , Processed in 0.030985 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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