0

GNU Make manual によると、最も「具体的な」暗黙のルールが選択されます。これは良いことです。ただし...暗黙の前提条件を作成する必要がないルールがある場合は、それがより「一般的」であっても選択されます。見る:

> touch existing
> cat Makefile
%.o: existing
 @echo general

foobar%.o: foobar%.i
 @echo specific

foobar%.i: ;
> rm foobar0.i
> make -r foobar0.o
general
> touch foobar0.i
> make -r foobar0.o
specific

IMHO、暗黙の前提条件が 0 であるかどうかに関係なく、特にそのような前提条件が既に存在するかどうかに関係なく、最も具体的なルールを常に選択する必要があります。しかし、ここで「なぜ」とは聞きたくありません。

代わりに、誰かが私に、望ましい動作を強制する方法を提案できますか。とにかく、適用される最も具体的なルールが常に必要です。それを強制する方法はありますか?

4

1 に答える 1

0

さて、私はこれを行うことができます:

%.o: %.dummy
    @echo general

%.dummy: ;

私はこの種のことが好きではありません。もっと醜い方法はありますか?

于 2013-10-30T02:00:39.097 に答える