Build 是否可以将命令行变量传入bitbake生成?

Build 是否可以将命令行变量传入bitbake生成?,build,command-line-arguments,compiler-flags,openembedded,bitbake,Build,Command Line Arguments,Compiler Flags,Openembedded,Bitbake,我有一个开放的嵌入式环境,使用bitbake进行一些构建。我想让bitbake暂停并请求输入,然后继续构建,但我发现这是不可能的 因为我不能这样做,我正在寻找一些方法来为构建传递额外的标志。有没有办法像gcc的-D选项那样将标志传递给bitbake构建 即: 因此,在oe myimage的构建过程中,变量foo将被设置为bar否,我认为不存在这样的机制。但你可以这样做 "echo "foo = \"bar\"" >local.conf 不确定这是否能解决您的特定问题。此外,还有一种用于本

我有一个开放的嵌入式环境,使用bitbake进行一些构建。我想让bitbake暂停并请求输入,然后继续构建,但我发现这是不可能的

因为我不能这样做,我正在寻找一些方法来为构建传递额外的标志。有没有办法像gcc的
-D
选项那样将标志传递给bitbake构建

即:


因此,在
oe myimage
的构建过程中,变量
foo
将被设置为
bar

否,我认为不存在这样的机制。但你可以这样做

"echo "foo = \"bar\"" >local.conf
不确定这是否能解决您的特定问题。此外,还有一种用于本地站点范围变量的机制:如果在名为.oe的目录下的主目录中有一个“site.conf”文件,bitbake将读取该文件,并将这些变量应用于每个构建的全局环境。也许那会有帮助?您没有明确说明要解决的问题,可能有更好的方法

bitbake -Dfoo=bar oe-myimage
-bitbake无法识别D标志。因此,使用上述方法将不起作用。相反,您可以使用以下步骤从命令行指定标志-

假设您想要导出变量foo,并希望bitbake能够识别它

export foo="foobar"
在获取oe初始构建环境后,您需要导出此文件并通过BB_ENV_EXTRAWHITE变量通知bitbake。这意味着

. oe-init-build-env
export foo="foobar"
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE foo"      
此白名单中列出了bitbake的变量“foo”,从而使其在构建期间对任何配方和子流程都可见

在此之后,您可以通过以下表达式在bitbake中使用变量foo调用任何bitbake操作-

${foo}
你可以做:

export foo="bar"
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE foo"
bitbake oe-myimage

虽然其他答案没有问题,但bitbake接受文档中的
--postread
参数。这意味着您可以将任意多个bitbake变量写入某个临时配置文件,并通过在命令行上指定文件名在bitbake.conf之后读取。例如:

bitbake --postread=./extra.conf

我个人认为这比处理环境变量更方便。

还有一种方便的命令行方法,如bitbake手册中所述:

有时,能够从原始执行环境中获取信息是很有用的。Bitbake将原始环境的副本保存到名为BB_ORIGENV的特殊变量中

为此,您可以完全按照它们的建议读取变量(从Python函数):

然后,从命令行传递的方法很简单:

BAR=somevalue bitbake myimage

是否可以添加额外的永久变量?在一些配置文件中?或者每次系统重新启动后是否需要导出BB_ENV_超白?是的。您只需在更方便的地方设置变量。e、 g.将上述2个导出行添加到oe初始构建环境。
 origenv = d.getVar("BB_ORIGENV", False)
 bar = origenv.getVar("BAR", False)
BAR=somevalue bitbake myimage