我刚刚将我的Yocto Poky从“Daisy”升级为“Jethro”,现在一些曾经在“do_install”任务中运行良好的配方会出现类似的错误消息:
ERROR: oe_runmake failed
ERROR: Function failed: do_install (log file is located at /build/tmp/work/cortexa9hf/qpdf/6.0.0-r0/temp/log.do_install.31232)
ERROR: Logfile of failure stored in: /build/tmp/work/cortexa9hf/qpdf/6.0.0-r0/temp/log.do_install.31232
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_install
| NOTE: make -j 8 DESTDIR=/build/tmp/work/cortexa9hf/qpdf/6.0.0-r0/image install
| make: *** No rule to make target 'install'. Stop.
| ERROR: oe_runmake failed
| ERROR: Function failed: do_install (log file is located at /build/tmp/work/cortexa9hf/qpdf/6.0.0-r0/temp/log.do_install.31232)
ERROR: Task 2 (/home/g0hl1n/git/meta-mine/recipes-foss/qpdf/qpdf_6.0.0.bb, do_install) failed with exit code '1'
我认为这可以通过分离构建目录来实现,但我对答案/解决方案的搜索并不成功。
产生上述错误消息的方法是:
DESCRIPTION = "PDF transformation/inspection software"
HOMEPAGE = "http://qpdf.sourceforge.net"
LICENSE = "Artistic-2.0"
SECTION = ""
DEPENDS = "libpcre"
PR = "r0"
SRC_URI = "https://github.com/qpdf/qpdf/archive/release-qpdf-${PV}.tar.gz"
LIC_FILES_CHKSUM = "file://Artistic-2.0;md5=7806296b9fae874361e6fb10072b7ee3"
SRC_URI[md5sum] = "a0601b0bc56d3f412fd3afecfce2721c"
SRC_URI[sha256sum] = "ce323ca692ddc6da31a90ef8a5f7fb7bc6c61c1c037e2eac14e5d0fcfe6a2797"
S="${WORKDIR}/${PN}-release-${PN}-${PV}"
inherit autotools gettext
# disable random file detection for cross-compile
EXTRA_OECONF = "--without-random"
PACKAGES =+ "libqpdf"
FILES_libqpdf = "${libdir}/libqpdf.so.*"
非常感谢任何帮助,谢谢!
答案 0 :(得分:1)
我自己刚刚找到了答案。 (我应该在发布之前做更多的研究......)
由于Yocto 1.7更新中autotools
类的更改,构建失败。
现在默认使用单独的构建目录:autotools类已更改为使用目录构建(B),这是 与源目录(S)分开。这通常被称为 如B!= S,或树外构建。
如果正在构建的软件已经能够构建一个 目录与源分开,您不需要做任何事情。 但是,如果软件无法以这种方式构建, 你需要修补软件才能构建它 单独,或者您需要更改配方以继承 autotools-brokensep类而不是autotools或autotools_stage 类。 [1]
因此,从inherit autotools
更改为inherit autotools-brokensep
修复了qpdf版本的问题。