关于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
------解决方案--------------------sed和它的参数之间没有空格分隔。