当前位置: 技术问答>linux和unix
Makefile中的一个问题
来源: 互联网 发布时间:2016-08-21
本文导语: %.d: %.c @set -e; rm -f $@; $(CC) -M $(CPPFLAGS) $; $@.$$$$; sed 's,($*).o[ :]*,1.o $@ : ,g' ; $@; rm -f $@.$$$$ 请大家帮忙解读一下sed那行,谢谢! | $(CC) -M 生成的...
%.d: %.c
@set -e; rm -f $@;
$(CC) -M $(CPPFLAGS) $; $@.$$$$;
sed 's,($*).o[ :]*,1.o $@ : ,g' ; $@;
rm -f $@.$$$$
请大家帮忙解读一下sed那行,谢谢!
|
$(CC) -M 生成的dep文件有如下的格式。
假设源文件为hello.c
sed 把文件格式换成
假设源文件为hello.c
hello.o: hello.c
hello.o: /usr/include/stdio.h
sed 把文件格式换成
hello.o hello.d : hello.c
hello.o hello.d : /usr/include/stdio.h
|
$* 不包含扩展名的目标文件名称。
查查makefile就知道了
查查makefile就知道了
|
sed 's,($*).o[ :]*,1.o $@ : ,g' ; $@;
把$@.$$$$中$*.o[:]*全局替换成 1.o,
把$@.$$$$中$*.o[:]*全局替换成 1.o,