库不是使用makefile创建的

时间:2013-11-03 16:51:18

标签: c makefile

我正在获取gcc:错误:libs1.a:当我尝试在make文件中创建库时,没有此类文件或目录错误。我不知道我哪里出错了。库命令是写的因为我尝试了故障排除并独立运行命令并创建了库。 Makefile下面....

COMPILER = gcc
CCFLAGS = -Wall
all:search

debug:
    make DEBUG=TRUE

search.o: search.c tokenizer.h uthash.h
    $(COMPILER) $(CCFLAGS) -c search.c

tokenizer.o: tokenizer.c
    $(COMPILER) $(CCFLAGS) -c tokenizer.c

libs1.a: tokenizer.o search.o
    ar -cvq libs1.a search.o tokenizer.o

search: search.o tokenizer.o
    $(COMPILER) $(CCFLAGS) -o search search.o libs1.a

ifeq ($(DEBUG), TRUE)
 CCFLAGS += -g

endif

clean:
    rm -f *.o
    rm -f *.a libs1

1 个答案:

答案 0 :(得分:3)

更改此行

search: search.o tokenizer.o

search: search.o libs1.a

这会使search依赖于libs1.amake search会在进行链接之前生成libs1.a

请注意,您的lib和链接行都有search.o.你可能想要或其他,而不是两者。