一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

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

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

[复制链接]
发表于 2017-5-2 16:56 | 显示全部楼层 |阅读模式
已经编译出bin文件了,现在研究一下makefile,把遇到的问题记录下来:! Z7 R: J6 u, w6 O
. j/ N4 S) z9 G
1.  $(@:_config=)什么意思?
0 r1 z1 G' ^) u/ g4 N/ X网上查到如下解释
( _- |- q  j: D0 E2 E8 x, J这里使用了Makefile中的替换引用规则,类似常看到的例子 obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件.5 {4 u, \: W# J& o0 s
这里是一样的道理:5 c) I, _6 [% O2 W9 L0 a
$(@:_config=)   W, z4 z; ]! J: U
! l7 ?( f% p5 o6 |
@代表的是target smdk2410_config, 那么$(@:_config=)就是将smdk2410_config中的_config替换为空!得到smdk2410; 你可以用echo自己打印出来看看就明白了!
" g9 n8 o1 Y+ K3 {, w. {  h+ D& @9 Z' n
smdk2410_config : unconfig1 }  X" n" q, W3 g/ A) w  ~, b) R
  @echo $(@:_config=) # 打印出来看看吧
8 R7 l5 a% U5 Y0 G6 I  @$(MKCONFIG) $(@:_config=) ARM arm920t smdk2410 NULL s3c24x0
3 _, B/ p* {, Z9 T' \! ?但有一点不明白@代表目标吗?印象里好像是$@ 才代表目标,做了个测试 “8 p6 m3 o- P+ d& d! X& s0 ~# b
all:8 m; a3 u& k+ R) @- K3 T
   @echo $@   输出是all
  _/ s6 I, ^! ?* q2 l   @echo @    输出是@
! K+ `6 P$ a4 l   @echo $(@) 输出是all
; m" I1 @# B6 r4 |' g所以我认为符号@在$()中和$@是一样的
) B: W5 e; B# a: {# N, B$ W2. 目标 :依赖7 Y+ A# v/ v& a3 B
        命令
) W6 j: b" T5 z% x  命令是否可以直接是一个文件名?, b/ P6 h& h3 d1 m! B" \
做了个测试证明可以:
8 K1 j+ Y7 C2 y! C在外面建立一个makecfg  里面输入 echo i am here !1 E0 A2 Y  c# {% u) W
在makefile 里
5 I$ t2 O8 ^; O, X4 [all:9 Z+ v5 p) b1 u/ H
    @(路径/makecfg)1 w0 |$ K; A8 e  y: P3 V

" T; z8 @2 ~- Q" v& [输入命令make all7 l% h5 B% S$ |, M( v
就会输出 i am here !
 楼主| 发表于 2017-5-2 17:10 | 显示全部楼层
越看越发现makefile功能实在强大,配合shell 一起用所向无敌

本版积分规则

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

GMT+8, 2024-4-25 06:58 , Processed in 0.054105 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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