很高兴的,开始编写makefile,可是一make ,就指着第六行,说错误:makefile:6: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
于是,就检查动作行没行之前都8个空格,可是还是不行。搜吧,有人说要在gcc前面加tab键,就第二行各个文件之间都加了tab键,不行。最终找到一个网页上标准的语法说明:
makefile应该是:
program:make.o
<TAB>gcc make.o -o make
make.o:make.c
<TAB>gcc -c make.c
原来要在每个动作行之前必须加一个<tab>,如下所示:
CC = gcc
CFLAGS = -fpic -c
.PHONY : clean gprs
gprs : stty.o driver.o parse.o tcp.o
$(CC) -o tcp.so -shared stty.o driver.o parse.o tcp.o -I/usr/include/python2.6/ -Ipython2.6
stty.o : stty.c stty.h
$(CC) $(CFLAGS) s tty.c
driver.o : driver.c driver.h
$(CC) $(CFLAGS) driver.c
parse.o : parse.c parse.h
$(CC) $(CFLAGS) parse.c
tcp.o : tcp.c tcp.h
$(CC) $(CFLAGS) tcp.c
clean :
rm -f stty.o driver.o parse.o tcp.o tcp.so
搞定!