日期:2014-05-16  浏览次数:20708 次

关于MAKEFILE
今天学习了下MAKEFILE文件编写。
目前遇到一个文件
网上说有以下代码可以生成自动依赖



MACRO = DEBUGALL
CC=gcc
LDFLAGS = -g -w -D$(MACRO)

SOURCES=$(wildcard *.c)

OBJS :=$(patsubst %.c,%.o,$(SOURCES))

sinclude $(SOURCES:.c=.d)
%d:%c
@set -e;rm -f $@;\
$(CC) -MM $(LDFLAGS) $< >$@.$$$$;\
sed's,\($*\)\.o[:]*,\1.o $@:,g' < $@.$$$$ >$@;\
rm -f $@.$$$$

每次编译执行的时候,都会报 sed's,\($*\)\.o[:]*,\1.o $@:,g' < $@.$$$$ >$@;\这句错误
比如我当前目录有main.c main.h
编译到main.c的时候
bash: seds,\(main.\)\.o[:]*,\1.o main.d:,g: not found
这是啥意思?
用ls 有发现目录下面有main.d main.d.19555
main.d.19555 文件内容是 
main.o: main.c main.h a.h

------解决方案--------------------
引用:
今天学习了下MAKEFILE文件编写。
目前遇到一个文件
网上说有以下代码可以生成自动依赖

C/C++ code?1234567891011121314MACRO = DEBUGALLCC=gccLDFLAGS = -g -w -D$(MACRO) SOURCES=$(wildcard *.c) OBJS :=$(patsubst %.c,%.o,$(SOURC……
sed和它的参数之间没有空格分隔。