【发布时间】:2017-06-17 07:44:09
【问题描述】:
我正在尝试为基于 iMX6 的板 SECO A62J 构建基于 fsl-image-gui 的自定义 Yocto 映像。我使用 Hob 来执行此操作。
在选择了我的机器、我的图层和我的图像后,我通过添加 chromium 来自定义我的包列表。这会自动选择作为 Chromium 依赖项的 libexif 和 libav。包构建成功
最后一步是构建图像本身,这就是我的问题出现的地方。我选择要包含在我的映像中的包,包括 Chromium、libexif 和 libav(及其依赖项)。
我得到了这些错误:
没有 RPROVIDES 'libavresample'(但是 /home/adrien/fsl-release-bsp/build_anna/recipes/images/fsl-image-gui-edited-20170131-144607.bb RDEPENDS on 或需要它)
和
必需的构建目标“fsl-image-gui-edited-20170131-144607”没有 可构建的提供者。缺少或无法构建的依赖链是: ['fsl-image-gui-edited-20170131-144607', 'libavresample']
不过libavresample.so库构建成功,可以在我的构建目录sysroots/"machine_name"/usr/lib/下找到
为什么 Yocto 找不到这个库并将其包含在我的图像中,我在这里缺少什么?
【问题讨论】:
-
在您的 yocto 构建中没有配方生成一个名为“libavresample”的包。你确定你需要它吗?无论如何,Chromium 可能会使用自己的副本。
-
在构建包步骤中,libav 被自动选择为 Chromium 依赖项。这就是为什么我认为我需要它,我会试一试而不将它包含在我的图像中。我认为 libavresample 是用 libav 构建的,如果不是,我不知道构建目录中的 libavresample.so 来自哪里。在构建映像步骤中,当我选择 libav 时,它的依赖项也会自动选择,如 libavresample、libavcodec 等
-
这很复杂:根据 yocto 版本,libavresample 可能来自 libav 或 ffmpeg(但默认情况下不构建 AFAIR),但它也可能包含在例如铬。当你说你“选择 libav”时,你到底是什么意思?我见过的所有 libav 配方都没有默认构建 avresample,更不用说运行时依赖它了……链接到配方可能会有所帮助。
-
我问你如何选择 libav 的原因是你说你自动选择了 libavresample 但根据日志你的图像直接在 libavresample 上 RDEPENDS - 似乎没有任何依赖关系之间。
-
"select libav" 表示我使用 Hob,所以我有一个构建包的列表,我可以通过单击它们将它们包含到我的图像中,并且它们的依赖项会被自动选择。使用 libav,它会自动选择其他库,例如 libavresample 你是对的,它使我的图像依赖于 libavresample,我实际上并不想要这个。我会检查 Chromium 是否有自己的副本。也许我不需要明确包含 libav。导致我这样做的原因是,当我选择构建 Chromium 时,libav 也被自动选择并构建。这就是为什么我认为我需要明确包含 libav。