简单安装本机脚本以用于其他配方
Simple installation of native script for use in other recipe
我需要安装一个本机脚本,在一个配方 (foo-native
) 中将其命名为 foo
,然后在另一个(目标)配方的 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
}
脚本 foo
位于配方旁边名为 files
的目录中。即
foo/
├── files
│ └── foo
└── foo.bb
我 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
}
我得到的错误是在 bar
的 do_compile
任务中,它只是说 foo
无法找到(即尚未安装到路径)。
首先,你不需要这条线
inherit native
在 foo.bb
中。由 BBCLASSEXTEND = "native"
.
为您处理
其次,将您的 do_install
更改为:
do_install() {
install -d ${D}${bindir}
install ${WORKDIR}/foo ${D}${bindir}
}
注意:使用 ${bindir}
而不是 /usr/bin
。 ${bindir}
是使用 ${prefix}
确定的,而 ${prefix}
又会发生变化,例如在构建 -native
版本的食谱时。
我需要安装一个本机脚本,在一个配方 (foo-native
) 中将其命名为 foo
,然后在另一个(目标)配方的 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
}
脚本 foo
位于配方旁边名为 files
的目录中。即
foo/
├── files
│ └── foo
└── foo.bb
我 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
}
我得到的错误是在 bar
的 do_compile
任务中,它只是说 foo
无法找到(即尚未安装到路径)。
首先,你不需要这条线
inherit native
在 foo.bb
中。由 BBCLASSEXTEND = "native"
.
其次,将您的 do_install
更改为:
do_install() {
install -d ${D}${bindir}
install ${WORKDIR}/foo ${D}${bindir}
}
注意:使用 ${bindir}
而不是 /usr/bin
。 ${bindir}
是使用 ${prefix}
确定的,而 ${prefix}
又会发生变化,例如在构建 -native
版本的食谱时。