未找到 Bitbake 二进制文件

Bitbake binary file not found

我正在使用 bitbake 构建我的应用程序并将其部署到我的 linux 构建中。我最近得知我的二进制应用程序没有部署到 /usr/bin。我被告知更新我的 mainapplication.bb 以具有以下行。 install -m 0644 ${S}/MAIN_Application ${D}${bindir}

这样做会导致我的 bitbake 构建崩溃,因为它找不到 MAIN_Application 二进制文件。

我完整的bitbake文件如下

LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "\
    file://MAIN_Application \
        file://services \   
    "

inherit autotools systemd

S = "${WORKDIR}/MAIN_Application"

DEPENDS += "libsocketcan"

SYSTEMD_SERVICE_${PN} = "MAINapplication.service"

do_install_append () {
    install -d ${D}${systemd_system_unitdir}
    install -m 0644 ${WORKDIR}/services/MAINapplication.service ${D}${systemd_system_unitdir}
    sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_system_unitdir}/MAINapplication.service
    install -m 0644 ${S}/MAIN_Application ${D}${bindir}
}

我正在使用 autotools,我有一个 makefile.am、configure.ac 和 autogen 脚本。 运行 他们在本地我得到了适当的二进制文件,我可以把它放在设备上 运行。我想知道为什么 bitbake 在其自动化过程中找不到二进制文件。

编辑:二进制文件已创建并存储在 build-fb/tmp/work/cortexa7t2hf-neon-poky-linux-gnueabi/mainapplication/0.0-r0/build。我的路径不对吗?

autotools 编译到 ${B}

的构建文件夹中

只需确认这是您的构建目录:

bitbake -e mainapplication | grep ^B=

并更改此行:

install -m 0644 ${S}/MAIN_Application ${D}${bindir}

通过这条线:

install -m 0644 ${B}/MAIN_Application ${D}${bindir}