我正在获取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
答案 0 :(得分:3)
更改此行
search: search.o tokenizer.o
到
search: search.o libs1.a
这会使search
依赖于libs1.a
而make search
会在进行链接之前生成libs1.a
。
请注意,您的lib和链接行都有search.o.你可能想要或其他,而不是两者。