一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 3940|回复: 1

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

[复制链接]
发表于 2017-5-2 16:56 | 显示全部楼层 |阅读模式
已经编译出bin文件了,现在研究一下makefile,把遇到的问题记录下来:0 ]; Z* S; S/ Z' j' N2 B) V+ \

( N$ P9 ?: x) Q( C! N1.  $(@:_config=)什么意思?& C$ x% S; e- r7 I' I: U
网上查到如下解释. z8 I) w! n; Z, S# ]
这里使用了Makefile中的替换引用规则,类似常看到的例子 obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件.
8 B! s: I! P; b2 y: k& ~" B$ J$ a这里是一样的道理:
5 c! ^5 Y- I0 Q. s( D' l5 a- S $(@:_config=) " y$ O6 g# U+ R

- y; @2 c3 N' w) }7 z$ V% } @代表的是target smdk2410_config, 那么$(@:_config=)就是将smdk2410_config中的_config替换为空!得到smdk2410; 你可以用echo自己打印出来看看就明白了! 4 o% v/ ?# G% V+ @$ @7 Z. t+ ^. O
7 |0 U" p  {8 D7 p4 O
smdk2410_config : unconfig9 z" R8 j' l2 b5 e, T% q  a
  @echo $(@:_config=) # 打印出来看看吧
4 ~# Q) m" S  x% p' u  @$(MKCONFIG) $(@:_config=) ARM arm920t smdk2410 NULL s3c24x0 4 i- u( i% v2 \; m2 V) w8 w, D5 E
但有一点不明白@代表目标吗?印象里好像是$@ 才代表目标,做了个测试 “. Z0 T5 c0 p) q1 o" A: Y
all:* o* i5 W+ D% F7 J& j
   @echo $@   输出是all
' ~. ~' D9 w3 c# v3 |9 C   @echo @    输出是@5 Q, m8 n- q$ {: ?; h" g
   @echo $(@) 输出是all- z6 z) ]' r' x' B$ }+ Y( }
所以我认为符号@在$()中和$@是一样的
3 ^8 t8 P% N. Q0 r& W2. 目标 :依赖3 n; M$ d; J+ ?7 J; \' N0 |' N
        命令7 A4 v* o  D- {( m4 Y
  命令是否可以直接是一个文件名?
7 A, [1 i5 T! o" g做了个测试证明可以:6 s2 f8 m! t- }: t6 k4 T* @( T% H4 z
在外面建立一个makecfg  里面输入 echo i am here !
2 s1 s2 W$ s# d/ y/ F; _7 D; k在makefile 里/ p" U. S1 i2 q6 R5 l4 |. n4 B
all:* ^8 k" S3 f; X- M. C$ c' p
    @(路径/makecfg)
3 w* _% d/ m7 t$ T: l2 d9 x) C' j5 r
# s8 _9 V3 Y9 S, E6 y3 ]输入命令make all
  c/ R- ]1 _1 t! q7 s( R9 w就会输出 i am here !
 楼主| 发表于 2017-5-2 17:10 | 显示全部楼层
越看越发现makefile功能实在强大,配合shell 一起用所向无敌
回复

使用道具 举报

本版积分规则

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

GMT+8, 2025-8-20 09:14 , Processed in 0.035164 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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