Makefile で変数の割り当てが実際にどのように機能するかを明確に説明できる人はいますか。
違いは何ですか :
VARIABLE = value
VARIABLE ?= value
VARIABLE := value
VARIABLE += value
私は読んだセクションGNU Make のマニュアルに書いてありますが、まだ意味がわかりません。
ベストアンサー1
レイジーセット
VARIABLE = value
変数の通常の設定ですが、フィールドで指定された他の変数は、value
宣言時の値ではなく、変数が使用される時点での値で再帰的に展開されます。
即時設定
VARIABLE := value
内部の値を単純に拡張する変数の設定 - 内部の値は宣言時に拡張されます。
存在しない場合は遅延設定
VARIABLE ?= value
変数に値がない場合のみ設定します。 はアクセスvalue
時に常に評価されます。これは以下と同等です。VARIABLE
ifeq ($(origin VARIABLE), undefined)
VARIABLE = value
endif
を参照してくださいドキュメンテーション詳細については。
追加
VARIABLE += value
指定された値を既存の値に追加する(変数が存在しない場合はその値に設定する)