1

当我尝试在 make 文件中创建库时,我收到 gcc: error: libs1.a: No such file or directory 错误。我不知道我哪里错了。库命令是 write 因为我尝试了故障排除并独立运行了命令并创建了库。生成文件如下......

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
4

1 回答 1

3

更改此行

search: search.o tokenizer.o

search: search.o libs1.a

这将使search依赖于libs1.a并将在进行链接之前进行make searchlibs1.a

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

于 2013-11-03T16:53:19.643 回答