1

ここに私のメイクファイルからのスニペットがあります:

main_DEPS = $(TARGETS_$(d)/classes/player) $(TARGETS_$(d)/classes/monster)

main_DEPS を他の 2 つの変数の拡張バージョンに設定します。
これは正常に機能します。


どうすれば交換できますか:

$(TARGETS_$(d)/classes/player) $(TARGETS_$(d)/classes/monster)

同じ出力を与えるプログラムで?

私は試した:

main_DEPS = $(shell program)

しかし、展開されたバージョンではなく、 main_DEPS文字列 value に等しく設定されているように見えました。$(TARGETS_$(d)/classes/player) $(TARGETS_$(d)/classes/monster)

私も試しました:

main_DEPS = $(eval $(shell program))  
main_DEPS = $(value $(shell program))  
main_DEPS = $(value $(eval $(shell program)))   
main_DEPS = $(eval $(value $(shell program)))   
4

1 に答える 1

1

これを試しましたか:

$(eval main_DEPS = $(shell program))

evalここで、 (inner expression with )の引数は、shell評価するステートメントを取得するために展開されます。

main_DEPS = $(TARGETS_$(d)/classes/player) $(TARGETS_$(d)/classes/monster)

私が正しく理解しているなら、これはまさにあなたが望むものでなければなりません。

于 2013-02-11T09:42:06.667 に答える