makefileに次のルールがある場合:
$(OBJ)/%.o: $(SRC)/%.c
$(CC) -c -o $@ $< $(CFLAGS)
./obj/
プレフィックスとサフィックスに一致するすべてのファイルの.o
語幹はに渡される%
ため、名前に基づいていくつかの依存関係を提供できます。
しかし、私がこの種のルールを持っていると仮定します。これは、必要なターゲットを1つずつ指定します。
OBJECTS=abc.o bca.o cba.o
$(OBJECTS): $(SRC)/%.c
$(CC) -c -o $@ $< $(CFLAGS)
makeが実行%
している現在のターゲット名に対してステムを実際に機能させるにはどうすればよいですか?使用するだけでは機能しません。%
$@
実際のターゲット名を独自の依存関係に書き込もうとしていることに注意してください。たとえば、makeがのルールを実行している場合abc.o
、それはそれだけを含みます$(SRC)/abc.c
(のようなもの$(patsubst %.o, $(SRC)/%.c, MAGIC_TARGET_NAME_VARIABLE)
)。