一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 4403|回复: 1

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

[复制链接]
发表于 2017-5-2 16:56 | 显示全部楼层 |阅读模式
已经编译出bin文件了,现在研究一下makefile,把遇到的问题记录下来:  {* l7 g5 ^1 k- @. w9 o
! u5 |2 r* V' P+ G6 D
1.  $(@:_config=)什么意思?5 C0 h: g, @) Q6 u5 R5 a$ P3 ^/ X
网上查到如下解释
! W$ P2 A5 y3 q* w这里使用了Makefile中的替换引用规则,类似常看到的例子 obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件.
) z/ H( H0 p! z7 X( v" O- _这里是一样的道理:
$ j4 b$ P2 {1 v- }; T $(@:_config=)
0 U3 {6 E! I: l. {% d
1 h8 ~6 T1 W3 g' \# ` @代表的是target smdk2410_config, 那么$(@:_config=)就是将smdk2410_config中的_config替换为空!得到smdk2410; 你可以用echo自己打印出来看看就明白了! 5 |% E" o  g+ ~' A7 w9 J7 L8 c4 R
7 _9 C0 t& Q6 P  M3 ?4 b( w8 [8 V
smdk2410_config : unconfig
) ?2 M4 k+ D0 O/ D. l  @echo $(@:_config=) # 打印出来看看吧
4 c8 n& l& G% g: C4 o" n* g9 b  @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
% h6 q: E+ ?: F5 v% g: P. n$ R' S但有一点不明白@代表目标吗?印象里好像是$@ 才代表目标,做了个测试 “
/ C1 B* A% F; j8 K1 Mall:
: r; I8 o( @: [. P9 [2 m   @echo $@   输出是all
  f  M% u6 K* j3 {2 E   @echo @    输出是@' ]* |* A3 s5 z
   @echo $(@) 输出是all
, H) X  K# m* _5 E' N" i; o4 D  |所以我认为符号@在$()中和$@是一样的
( v( b3 {; Y' t6 C2. 目标 :依赖
8 A. ?8 i9 _* g( a& h        命令8 G4 ~8 @# Y8 G3 g
  命令是否可以直接是一个文件名?, |! _4 l* {2 E
做了个测试证明可以:
8 u( u8 E! J: b5 _  A3 G在外面建立一个makecfg  里面输入 echo i am here !) m+ s" R1 Y* @- o
在makefile 里6 N- u- n7 S. X6 ^0 m. ]" E. Q& b
all:! Z# ~9 W/ ]% z3 m+ R% H6 K  W& h
    @(路径/makecfg)
/ @5 o4 m4 Z. Y) L) ?7 \3 i' d " U' M$ \' h: I
输入命令make all
! Z1 Z$ \# u8 u+ ~就会输出 i am here !
 楼主| 发表于 2017-5-2 17:10 | 显示全部楼层
越看越发现makefile功能实在强大,配合shell 一起用所向无敌
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-4-17 16:29 , Processed in 0.029141 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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