0

在我的 makefile 中,运行“make tests”时出现以下错误: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 回答