2

GNUmakeで使用しようとしてdefineいます。このテストでmakeを実行すると、Makefileは「ダミー」をエコーし​​ます。

define FOO =
$$(error foo $(1))
endef

$(eval $(call FOO,bar))

all:
    @echo dummy

を削除すると、意図したとおり=にエラーが発生します。foo bar

GNU makeマニュアルには、等号が存在するフォームを使用したすべての定義例があります。なぜそれが私にとって無視されているように見えるのですか?

4

1 に答える 1

6

definewith assignment は GNU Make 3.82 で導入されました。古いバージョンを使用している可能性があります。

ただし、最近のバージョンdefine foo =では plain と同じdefine fooです。3.82 より前のバージョンで動作させるには、後者を使用してください。

于 2012-05-27T12:40:02.583 に答える