bitbake/yocto で ?= と ??= の意味

bitbake/yocto で ?= と ??= の意味

Bitbakeレシピスクリプトのさまざまな割り当てタイプはどういう意味ですか?たとえば、次のようになります。

 BB_NUMBER_THREADS  ?=  "${@oe.utils.cpu_count()}"
 PARALLEL_MAKE  ?=  "-j ${@oe.utils.cpu_count()}"
 MACHINE    ??= "qemux86"

上記のRubyに似たものは何ですかbb_number_threads ||= 'something'

ベストアンサー1

~によるとこれBitbake マニュアルセクション

?=銀:

「?=」演算子を使用すると、変数を「より柔軟に」割り当てることができます。この割り当てタイプを使用すると、文を解析するときに未定義の変数を定義できますが、変数に値がある場合はその値を保持できます。例は次のとおりです。

A ?= "aval"

このステートメントを解析するときにAが設定されている場合、変数はその値を保持します。ただし、Aが設定されていない場合、変数は「aval」に設定されます。

?? =は:

"??="演算子を使用すると、前のセクションよりも「弱い」割り当てを使用できます。この割り振りは、割り振りが直ちに行われず、構文解析プロセスの終わりに発生することを除いて、「?=」と同じように機能します。したがって、「??=」割り当てが複数ある場合は、最後の割り当てが使用されます。また、「=」または「?=」の割り当ては、「??=」に設定された値をオーバーライドします。例は次のとおりです。

 A ??= "somevalue"
 A ??= "someothervalue"

上記の文を解析する前にAを設定すると、変数はその値を保持します。 A が設定されていない場合、変数は「someothervalue」に設定されます。

繰り返しますが、この割り当ては、解析プロセスが終了するまで発生しないため、「怠惰な」または「弱い」割り当てです。

おすすめ記事