1

make ファイルでライブラリを作成しようとすると、gcc: error: libs1.a: No such file or directory エラーが発生します。どこが間違っているのかわかりません。トラブルシューティングを試み、コマンドを個別に実行してライブラリを作成したため、ライブラリコマンドは書き込みです。以下のメイクファイル....

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 searchする前に作成されます。libs1.a

lib と link 行の両方に search.o があることに注意してください。おそらく両方ではなく、どちらか一方が必要です。

于 2013-11-03T16:53:19.643 に答える