0
votes

In my makefile, I'm getting the following error when running 'make tests': make: * No rule to make target GenRangeTreeTester', needed bytests'. Stop.

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

But actually GenRangeTreeTester and libGenRangeTree.a aren't exist so why doesn't it run the gcc call ?

Thanks.

2

2 Answers

0
votes

The line tests: GenRangeTreeTester libGenRangeTree.a means that target tests depends on GenRangeTreeTester. A file must be present with that name for the commands below to be executed.

Change your Makefile like this:

tests: GenRangeTreeTester 
    ./GenRangeTreeTester

GenRangeTreeTester: libGenRangeTree.a
    gcc -Wall -L. -lGenRangeTree Teacher.o Manager.o -o GenRangeTreeTester
0
votes

Your telling it that tests depends on GenRangeTreeTeset and libGenRangeTree and make is telling you it can't find a build rule for GenRangeTreeTester and that it doesn't exist.

It's not running gcc, make won't continue without the dependencies being up to date (and actually existing :) ).

Hope that clears it up for you.