部分扩展递归扩展变量

时间:2019-01-25 14:49:03

标签: makefile gnu-make

考虑以下makefile示例:

all:;

varname := a

val = $($(varname)-value)

a-value := AAA
b-value := BBB

$(info val: $(val))
varname := b
$(info val: $(val))

如预期的那样,在此makefile上运行make会导致:

val: AAA
val: BBB

由于valrecursively expanded variable,因此在引用(即$(val))时会发生扩展。

在定义变量val时,尚未定义变量a-value。因此,将val定义为simply expanded variable(即,用:=代替=):

val := $($(varname)-value) 

导致$($(varname)-value)立即扩展为空字符串,进而导致空$(val)

我想知道是否有一种方法可以在varname的定义中立即扩展val,但是推迟扩展直到val引用的那一刻为止的结果,就好像val实际上是在上面的makefile中定义为:

val = $(a-value) 

1 个答案:

答案 0 :(得分:1)

好吧,你可以这样做:

ret, thresh = cv2.threshold(gray, 225, 255, cv2.THRESH_BINARY_INV)  
相关问题