在make 中,编译链接项目的时候,我总是写换这样子写。
比如:
CC := gcc
CFLAGS := -Wall -g
LDFLAGS := -ljansson
OBJECTS := das.o parse.o utils.o
all: $(OBJECTS)
<span style="white-space:pre"> </span>$(CC) -c $(LAFLAGS) $(CFLAGS) $(OBJECTS) -o main
das.o: das.c command.h common.h parse.h
$(CC) -c $(CFLAGS) das.c $(LDFLAGS) -o das.o
parse.o: parse.c parse.h
$(CC) -c $(CFLAGS) parse.c $(LDFLAGS) -o parse.o
utils.o: utils.c common.h command.h
$(CC) -c $(CFLAGS) utils.c $(LDFLAGS) -o utils.o
clean:
rm $(OBJECTS) main
这里实际上第一个 all 下面的编译是有问题的,因为链接库,一定要写在 $(OBJECTS) 的后面。
应该这样子写
all: $(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o main
恩,这样子就不会出现bug 了。