1

这是我的makefile中的一个片段:

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

它将 main_DEPS 设置为其他两个变量的扩展版本。
这可以正常工作。


我该如何更换:

$(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 回答