【问题标题】:DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'arm-32', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common']调试:站点文件 ['endian-little'、'bit-32'、'arm-common'、'arm-32'、'common-linux'、'common-glibc'、'arm-linux'、'arm- linux-gnueabi','普通']
【发布时间】:2018-01-11 01:03:22
【问题描述】:

我正在尝试使用 Yocto 在我的 Beaglebone black 上安装 snappy player (https://wiki.gnome.org/Apps/Snappy)。到目前为止,我发现 Sanppy 需要 gstreamer 和 clutter。

我的食谱如下:

k@k snappy-player]$ cat snappy-player_1.0.bb 
SUMMARY                         = "Snappy player for BBB"
DESCRIPTION                     = "Recipe to build Snappy player."
SECTION                         = "Multimedia"
PRIORITY                        = "optional"
LICENSE                         = "MIT"
LIC_FILES_CHKSUM                = "file://{COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI                         = "file://snappy-1.0.tar.xz"

S                               = "${WORKDIR}"

DEPENDS = "clutter-1.0 gstreamer1.0"

inherit autotools 

当我执行 bitbake core-image-sato 时,出现以下错误。

ERROR: snappy-player-1.0-r0 do_compile: oe_runmake failed
ERROR: snappy-player-1.0-r0 do_compile: Function failed: do_compile (log file is located at /home/k/YOCTO_KK/poky/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/snappy-player/1.0-r0/temp/log.do_compile.21220)
ERROR: Logfile of failure stored in: /home/k/YOCTO_KK/poky/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/snappy-player/1.0-r0/temp/log.do_compile.21220

***Log data follows:
| DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'arm-32', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common']
| DEBUG: Executing shell function do_compile
| NOTE: make -j 4
| make: *** No targets specified and no makefile found.  Stop.
| ERROR: oe_runmake failed
| WARNING: /home/k/YOCTO_KK/poky/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/snappy-player/1.0-r0/temp/run.do_compile.21220:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_compile (log file is located at /home/k/YOCTO_KK/poky/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/snappy-player/1.0-r0/temp/log.do_compile.21220)***


ERROR: Task (/home/k/YOCTO_KK/poky/build/meta-customkernel-layer/recipes-apps/snappy-player/snappy-player_1.0.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 4813 tasks of which 4812 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  /home/k/YOCTO_KK/poky/build/meta-customkernel-layer/recipes-apps/snappy-player/snappy-player_1.0.bb:do_compile
Summary: There was 1 WARNING message shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

我不确定我的配方中缺少哪些依赖项,因为 autotools 应该负责编译和安装,因为 snappy tar 文件确实具有 .ac 配置文件。

谁能告诉我如何处理这个问题?

仅供参考:已在此处附加 bitbake-cookerdaemon.log:https://pastebin.com/q1JGHNPv

您好,我已经使用配方工具重新创建了配方 (snappy_1.0.bb),(因为它将包含适当的依赖文件)

recipetool create -d -o snappy_1.0.bb https://ftp.gnome.org/pub/gnome/sources/snappy/1.0/snappy-1.0.tar.xz

这是我的食谱文件内容:

[k@k snappy-player]$ cat snappy_1.0.bb

# Recipe created by recipetool
# This is the basis of a recipe and may need further editing in order to be fully functional.
# (Feel free to remove these comments when editing.)

# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
# your responsibility to verify that the values are complete and correct.
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=686e6cb566fd6382c9fcc7a557bf4544"

SRC_URI = "https://ftp.gnome.org/pub/gnome/sources/snappy/${PV}/snappy-${PV}.tar.xz"
SRC_URI[md5sum] = "17598504ba57d4d21382faa1038476d9"
SRC_URI[sha256sum] = "0d33a05c1ad3cc075b8b9bf38d45634ea5204159454597b0882dd6a8d9763f58"

# NOTE: unable to map the following pkg-config dependencies: clutter-gtk-1.0 clutter-win32-1.0 clutter-osx-1.0 clutter-gst-2.0
#       (this is based on recipes that have previously been built and packaged)
DEPENDS = "clutter-1.0 gtk+3 glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base libxtst"

# NOTE: if this software is not capable of being built in a separate build directory
# from the source, you should replace autotools with autotools-brokensep in the
# inherit line
inherit pkgconfig autotools

# Specify any options you want to pass to the configure script using EXTRA_OECONF:
EXTRA_OECONF = ""

这一次除了之前的错误(SITE 文件...)我也遇到了依赖问题。

checking for clutter-gst-2.0 >= 2.0.0... no
| configure: error: Package requirements (clutter-gst-2.0 >= 2.0.0) were not met:
| 
| No package 'clutter-gst-2.0' found

默认情况下,我们有 clutter-gst-3.0,但 snappy 配置文件需要 2.0。那么我该如何解决这个问题?通过我尝试创建一个新的 clutter-gst-2.0 的接收器,尽管如此,我得到了相同的错误响应:-(。

请在此处查看错误日志https://pastebin.com/8wGxqh8x

有人可以指导我吗?

【问题讨论】:

    标签: embedded-linux yocto beagleboneblack openembedded


    【解决方案1】:

    这里有两个问题:

    1 尝试在错误目录中构建

    S 设置为${WORKDIR} 意味着将在解压tarball 的目录中尝试构建(配置和制作任务)。但是,tarball 会创建一个顶级 snappy-1.0 目录,并且它位于应该执行构建的目录中。

    尝试将S 更改为:

    S = "${WORKDIR}/snappy-${PV}"
    

    您的第二个配方文件已更改名称 snappy_1.0.bb,但未设置 S,因此它将使用 default value

    默认情况下,此目录为${WORKDIR}/${BPN}-${PV},其中${BPN} 是基本配方名称,${PV} 是配方版本。

    这正是我们在这种情况下想要的。

    这允许配置任务运行,并导致第二个问题......

    2 未解决的依赖关系

    snappy-1.0 需要 clutter-gst-2.0。你有 clutter-gst-3.0 并不重要,它们有不同的名称,因此就配置而言,这些是完全不同的东西。所以你有很多选择:

    • 构建 clutter-gst-2.0。你说你试过这个,但记住你需要将clutter-gst-2.0添加到DEPENDS,否则bitbake不会知道它必须先构建它。
    • 修补 snappy-1.0 以使用 clutter-gst-3.0
    • 查看是否有使用 clutter-gst-3.0 的 snappy 更高版本

    碰巧的是,snappy git repository 发生了一些变化,增加了对 clutter-gst-3.0 的支持,因此您可以尝试从 git 构建最新版本,而不是 1.0 版本。为此,请将配方中的 SRC_URI 行替换为:

    SRCREV = "e73fabce4c397b40d490c74f6a6a0de000804f42"
    SRC_URI = "git://git.gnome.org/snappy"
    S = "${WORKDIR}/git"
    

    您还需要设置 S,因为从 git 存储库检索源时存储源的目录现在将称为 git,因此与默认值不匹配。

    试一试,看看下一个问题是什么,编写 Yocto 食谱是一个非常迭代的过程!

    【讨论】:

    • 然而,我面临同样的错误,但是我已经稍微修改了我的配方以提供正确的依赖关系,但我仍然无法摆脱错误,请看看我更新的问题了解更多详情。
    • 你真的依赖 clutter-gst-2.0 吗?
    • 问题现已解决。我使用了更新的 snappy.tar 文件,其中的 config.ac 文件使用 clutter-gst-3.0 进行了更新。现在构建成功了。
    猜你喜欢
    • 2014-05-09
    • 2012-11-27
    • 2015-04-13
    • 1970-01-01
    • 2016-12-21
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多