Simon 's Blog
» 做笔记做笔记
Toggle navigation
Simon 's Blog
HOME
总裁介绍
coper
zongcai
what
ARCH
TAGS
navigation
!!! makefile难点
无
2018-01-11 16:15:18
229
0
0
simon88
[TOC] # 例子 %.d: %.c @set -e; rm -f $@; \ $(CC) -M $(CPPFLAGS) $< >; $@.$$$$; \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ >; $@; \ rm -f $@.$$$$ 简单来讲就是替换。这里采用逗号作为基本语法的分隔。一般的形式是sed 's/pattern/new/g' \$∗\.o[ :]*替换为\1.o \$@ : 后面的g表示全局替换,就是不止替换一次。 同时又是用在makefile当中,所以要牵扯到\$*,\$@之类的自动变量。 \$*,表示的是target的除去了suffix后的filename,也就是%.d: %.c当中的%部分。 \$@,表示的是target,也就是%.d sed操作的文件是来自上面命令的生成的临时文件\$@. 最后再把sed的输出定向到零时文件\$@. ```shell clean: sed 's,\(main\)\.o[:]*,\1.o main.d:,g' < main.d.temp > main.d ```  > [sed详解](http://www.mamicode.com/info-detail-1310929.html)
上一篇:
Makefile
下一篇:
$#,$@,$0,$1,$2
0
赞
229 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网
提交评论
0
条评论
More...
<>