0
问题是我想在一个变量中集中一些依赖项,但依赖项本身包含在变量中。GNU make:嵌套变量中的规则前提未执行
a=meow
b=squeek
$(a):
touch [email protected]
$(b):
touch [email protected]
targs=$(a) $(b)
all: $(targs)
在真实的情况下,a和b的规则不同,所以我需要它们在不同的目标中。
当我试图建立这样一个目标,只有最后一个嵌套的依赖被执行:
$ make
touch meow
$ ls
. .. Makefile meow
谁能请解释我如何解决的情况或者我错了? 我可以制作一个像targs这样的假目标:$(a)$(b),但是如果有一种方法可以保留我提到的结构,我想知道它。
提前致谢!
UPD:解决。我的错误:而不是运行make all
我跑make
并执行第一个目标而不是all
。
为我工作的地方使用下面的行。是否在收到$(b)'时检查了缩进问题(空格而不是制表符)? – Tsyvarev
@Tsyvarev,我的错。我正在运行'make',它运行了第一条规则,即$(a)。 当我运行'make all'时,它工作正常。 –
哦,你使用'make'与* default * target,但默认目标是makefile中列出的第一个目标。尝试'make all'或将all规则移到makefile中的其他位置。 – Tsyvarev