考虑以下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
由于val
是recursively expanded variable,因此在引用(即$(val)
)时会发生扩展。
在定义变量val
时,尚未定义变量a-value
。因此,将val
定义为simply expanded variable(即,用:=
代替=
):
val := $($(varname)-value)
导致$($(varname)-value)
被立即扩展为空字符串,进而导致空$(val)
。
我想知道是否有一种方法可以在varname
的定义中立即扩展val
,但是推迟扩展直到val
被引用的那一刻为止的结果,就好像val
实际上是在上面的makefile中定义为:
val = $(a-value)
答案 0 :(得分:1)
好吧,你可以这样做:
ret, thresh = cv2.threshold(gray, 225, 255, cv2.THRESH_BINARY_INV)