kdo*_*pen 7 openembedded bitbake yocto
我需要foo在一个配方(foo-native)中安装一个本机脚本,调用它,然后在do_compile另一个(目标)配方的步骤中使用它- 调用它bar.
我的(最小)原生食谱
SRC_URI = "file://foo"
LICENSE = "CLOSED"
inherit native
BBCLASSEXTEND = "native"
S = "${WORKDIR}"
do_compile() {
:
}
do_install() {
install -d ${D}/usr/bin
install ${WORKDIR}/foo ${D}/usr/bin
}
Run Code Online (Sandbox Code Playgroud)
该脚本foo存在于一个目录中,该目录files位于配方旁边.即
foo/
??? files
? ??? foo
??? foo.bb
Run Code Online (Sandbox Code Playgroud)
我的目标食谱 bar
SRC_URI = ""
LICENSE = "CLOSED"
DEPENDS = "foo-native"
do_fetch[noexec] = "1"
do_configure[noexec] = "1"
do_compile() {
foo >myfile.json
}
do_install() {
install -d ${D}/etc
install ${WORKDIR}/myfile.json ${D}/etc
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是在do_compile任务中bar,它只是说foo无法找到(即没有安装到路径上的目录中).
首先,你不需要这条线
inherit native
Run Code Online (Sandbox Code Playgroud)
在foo.bb.它由你照顾BBCLASSEXTEND = "native".
其次,将你do_install改为:
do_install() {
install -d ${D}${bindir}
install ${WORKDIR}/foo ${D}${bindir}
}
Run Code Online (Sandbox Code Playgroud)
注意:使用${bindir}而不是/usr/bin.${bindir}确定是使用${prefix},例如在构建-native配方版本时改变.