【问题标题】:Compile Yocto project编译 Yocto 项目
【发布时间】:2018-07-29 15:16:22
【问题描述】:

我看到a thread 在这里讨论如何在 yocto 中编译源代码。我使用它的第一种方法如下:

yocto-layer create Mylayer

我创建了 helloworld 示例。源文件 helloworld.c 的位置位于 .bb 文件位置的子文件夹中。我正在使用makefile。

我的目标是在 helloworld.c 所在的位置添加 3 个文件夹(1. build、2. Include 和 3. source)。构建目录将包含 make 文件,源目录包含所有 .c/.cpp 文件,并且包含文件夹包含包含文件。

当我在 helloworld.c 的位置添加所有内容时,它会成功编译,但是当我按照上面提到的那样安排源代码时,它不会编译。

如何在 yocto 中排列这些目录? .bb 或 .bbalyer 文件会有变化吗?

【问题讨论】:

  • 嗨,你能提供食谱吗 - 更容易找到 SRC_URI 获取哪些数据?其次,想要真正存储在第三个目录中的内容 - 如果可能,请创建目录结构。
  • SRC_URI = "file://makefile\file://appl_menu.cpp\file://appl_menu.hpp\file://crc_calc.cpp\file://crc_calc.h\. ................... 都在一个地方。我想把它放在上面提到的 3 个单独的文件夹中。
  • 我不明白。您标记为 C++,但您使用 C 语言描述?顺便说一句,它们是两种不同的语言。例如,C++ 有 std::string 用于文本,如文件和文件夹名称。

标签: c++ yocto build-environment


【解决方案1】:

在我看来,将源代码存储在食谱旁边并不是一个好主意 - 除非 这是出于学习目的的某种示例。

请查看 meta/ 层的食谱 - 这也是基于该主层的食谱的好方法。您将找不到与配方一起提交的源代码,并且在我看来,当您开始了解 Yocto/Bitbake 时,我建议您将源代码存储在专用存储库中,并且您的配方应使用 fetcher 库指向此存储库 - SRC_URI .

【讨论】:

    【解决方案2】:

    在您的食谱中添加以下行

    FILESEXTRAPATHS_prepend := "${THISDIR}:"
    SRC_URI += "file://hello/* "
    

    还创建一个directory hello,其中存在.bb,然后将所有数据复制到此hello directory。 现在您的 hello 目录应该如下所示
    你好
    |_构建
    |_包括
    |_来源

    【讨论】:

    • 我可以使用 FILESEXTRAPATHS_prepend := "${THISDIR}/patches:" 或 ${THISDIR} 之后的任何其他目录
    • 是的,您可以使用,但请确保您需要在 .bb 文件所在的同一目录中创建该目录
    猜你喜欢
    • 2020-05-19
    • 1970-01-01
    • 2020-09-13
    • 2018-04-22
    • 2018-12-08
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 2012-07-16
    相关资源
    最近更新 更多