0

「make tests」を実行すると、makefile で次のエラーが発生します: make: * No rule to make target GenRangeTreeTester', needed bytests'. 止まる。

tests: GenRangeTreeTester libGenRangeTree.a
    gcc -Wall -L. -lGenRangeTree Teacher.o Manager.o -o GenRangeTreeTester
    ./GenRangeTreeTester
.PHONY: tests

しかし、実際には GenRangeTreeTester と libGenRangeTree.a は存在しないのに、なぜ gcc 呼び出しを実行しないのでしょうか?

ありがとう。

4

2 に答える 2

0

テストが GenRangeTreeTeset と libGenRangeTree に依存し、make が GenRangeTreeTester のビルド ルールを見つけることができず、それが存在しないことを伝えていることを伝えます。

それはgccを実行していません。依存関係が最新のものでなければ、makeは続行されません(そして実際に存在します:))。

それがあなたのためにそれを解決することを願っています。

于 2013-08-07T11:18:59.887 に答える
0

この行tests: GenRangeTreeTester libGenRangeTree.aは、ターゲットtests が に依存して GenRangeTreeTesterいることを意味します。以下のコマンドを実行するには、その名前のファイルが存在する必要があります。

Makefile を次のように変更します。

tests: GenRangeTreeTester 
    ./GenRangeTreeTester

GenRangeTreeTester: libGenRangeTree.a
    gcc -Wall -L. -lGenRangeTree Teacher.o Manager.o -o GenRangeTreeTester
于 2013-08-07T11:19:13.033 に答える