首页 > 解决方案 > GNU-make:生成“Circular ..dependency dropped”消息

问题描述

(请原谅我的英语)

我正在使用GNU-make来编译打字稿代码。GNU-make 比其他类似工具更简单方便。我原来的Makefile在下面,它运行良好。

all: test.js request.js server.js

test.js: test.ts
    compiler test.ts

request.js: request.ts
    compiler request.ts

server.js: server.ts
    compiler server.ts

clean :
    del test.js request.js server.js

随着要编译的文件的增加,我修改了 Makefile,如下所示。

TARGETS=test.js request.js server.js

all: $(TARGETS)

.SECONDEXPANSION:

%: $$(basename $$@).ts
    compiler $(basename $@).ts

clean :
    del $(TARGETS)

修改后的 Makefile 也可以正常工作,但会生成这些消息。

make: Circular test.ts <- test.ts dependency dropped.
make: Circular request.ts <- request.ts dependency dropped.
make: Circular server.ts <- server.ts dependency dropped.
make: Nothing to be done for 'all'.

如何删除“循环.......依赖项已删除”消息?

标签: gnu-makemakefile

解决方案


为什么要使用二次扩展?这似乎是标准模式规则的简单用法,不需要复杂的功能:

%.js: %.ts
        compiler $<

推荐阅读