日期:2014-05-16 浏览次数:20966 次
%.d: %.c
    @set -e; rm -f $@; \
         $(CC) -M $(CPPFLAGS) $< >; $@.$$$$; \
         sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ >; $@; \
         rm -f $@.$$$$
hello.o: hello.c hello.o: /usr/include/stdio.h
------解决方案--------------------
$* 不包含扩展名的目标文件名称。
查查makefile就知道了
------解决方案--------------------
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ >; $@; \
把$@.$$$$中$*.o[:]*全局替换成 1.o,