Fra*_*aut 5 embedded yocto bitbake
不同的赋值类型在 bitbake 配方脚本中意味着什么,例如:
BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"
PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"
MACHINE ??= "qemux86"
Run Code Online (Sandbox Code Playgroud)
上面的什么类似于 Ruby 的bb_number_threads ||= 'something'
?
Fra*_*aut 10
根据Bitbake 手册的这一部分
?= 是:
您可以使用“?=”运算符为变量实现“更软”的赋值。这种类型的赋值允许您在解析语句时定义未定义的变量,但如果变量有值,则不考虑该值。下面是一个例子:
A ?= "aval"
如果在解析此语句时设置了 A,则变量将保留其值。但是,如果未设置 A,则将变量设置为“aval”。
??= 是:
通过使用“??=”运算符,可以使用比上一节中“弱”的赋值。此赋值的行为与“?=”相同,只是在解析过程结束时而不是立即进行赋值。因此,当存在多个“??=”赋值时,将使用最后一个。此外,任何“=”或“?=”赋值都将覆盖用“??=”设置的值。下面是一个例子:
A ??= "somevalue"
A ??= "someothervalue"
Run Code Online (Sandbox Code Playgroud)
如果在解析上述语句之前设置了 A,则变量保留其值。如果未设置 A,则将变量设置为“someothervalue”。
同样,这个赋值是一个“惰性”或“弱”赋值,因为它直到解析过程结束才会发生。