【问题标题】:build system derived toolchain in Yocto在 Yocto 中构建系统派生工具链
【发布时间】:2018-02-05 12:07:13
【问题描述】:

rocko 升级开始,我遇到了一个与 Yocto 2.3 中引入的特定于配方的 Sysroot 相关的问题

我们的项目使用 cmake。所以我们的食谱有:

DEPENDS = "cmake-native [...]"

所以cmake 最终在 build/tmp/work/cortexa5hf-neon-poky-linux-gnueabi/component/1.0-r0/recipe-sysroot-native/usr/bin/cmake 因此,在 yocto 内部构建时一切正常。

当我们在 yocto 之外构建时,我们使用在构建目录中生成和填充的跨工具链:

$ bitbake meta-ide-toolchain

然后source环境:

$ source build/tmp/environment-setup-cortexa5hf-neon-poky-linux-gnueabi

在 rocko OECORE_NATIVE_SYSROOT 设置为 [...]/build/tmp/work/cortexa5hf-neon-poky-linux-gnueabi/meta-ide-support/1.0-r3/recipe-sysroot-native - 这没有没有 cmake:

  $ which cmake
  $

所以没有找到 cmake...

在 Krogoth 上它是 build/tmp/sysroots/x86_64-linux - cmake 在那里:

$ which cmake
  <full path>/build/tmp/sysroots/x86_64-linux/usr/bin/cmake

如何正确设置从构建目录派生的工具链以便在 Yocto 外部构建?

【问题讨论】:

  • 是否有任何理由直接从 OE 的构建目录使用 SDK(工具链)?不应该这样使用... SDK 应该安装(通过deploy/sdk/ 目录中的shell 脚本)并从安装位置使用。我们在我们的软件和 SDK 中使用 cmake 没有任何问题(如果你愿意,我可以简要描述配置)。
  • 我们的想法是我们有构建项目的构建目录+完整映像,所以一切都已经存在,已经设置,所有工具+库等。
  • 如果添加了新的依赖项,您的环境会在对项目进行位烘焙期间更新,因此当您要在外部构建时,所有内容都会“自动”更新。生成安装程序,然后在其他一些位置安装它涉及额外的手动步骤。此外,如果添加了依赖项,您必须再次手动生成并安装它。所以在我们开始项目的时候看起来并没有那么简单,使用从build目录派生的工具链更“自然”...
  • 我记得构建目录工具链 (build/tmp/environment-setup-cortexa5hf-neon-poky-linux-gnueabi) 如果要使用 Eclipse 构建 Yocto 也需要使用项目。但也许,我遗漏了一些东西......(?)描述你的配置肯定会有所帮助!
  • 是的,我明白并理解您的原因。我们正在每个开发人员的计算机上安装 SDK,正如您所写,我们需要在每次更改时更新它(即添加/升级​​库)。幸运的是,它不那么频繁。另一方面,我们的开发人员在他们的计算机上没有 OE。我们也在使用 Eclipse。无论如何,您是否尝试过可扩展 SDK?它可能适合您的需求,并且是鼓励开发的方式。

标签: yocto bitbake toolchain


【解决方案1】:

我最终没有使用meta-ide-support,而是在我自己的配方(我的组件)中添加了生成工具链的支持:这是我的最终意图,能够在 Yocto 之外构建我的组件.

所以当我在构建组件的同时执行bitbake my-component 时,也会生成在 Yocto 之外构建组件所需的工具链。

在我的食谱中,我添加了来自meta-ide-support 的一些代码:

inherit toolchain-scripts

do_populate_ide_support () {
  toolchain_create_tree_env_script
}
addtask populate_ide_support before do_build after do_install

现在,当我构建我的配方时,我还在 build/tmp/ 目录中获得了一个环境设置脚本 - 与之前使用的 meta-ide-toolchain 相同。

现在一切都已正确设置:

OECORE_NATIVE_SYSROOT 设置为[...]/build/tmp/work/cortexa5hf-neon-poky-linux-gnueabi/component/1.0/recipe-sysroot-native

【讨论】:

    猜你喜欢
    • 2020-01-23
    • 2020-07-28
    • 2020-12-07
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2012-09-10
    相关资源
    最近更新 更多