用于安装从 cmake 生成的二进制文件的 Yocto 配方

问题描述

我是 Yocto 和 cmake 的新手。在互联网上查看和搜索后,我能够制作自己的食谱,并且能够使用 Yocto recipe 中的 cmake 成功编译代码。 但是编译和生成的二进制文件位于代码文件所在的构建文件夹中。使用 Yocto 生成图像时,如何将二进制文件从构建文件夹复制到自定义文件系统路径。

我的 .bb 文件目前看起来像这样:

CUSTOM_64

出现错误

#
# This file is the pscode recipe.
#

SUMMARY = "Simple test application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "file://src/*     \
           file://include/* \
           file://CMakeLists.txt\
          "

S = "${workdir}"

do_configure() {
    cmake ../
}

inherit pkgconfig cmake

do_install() {
         install -d ${D}/home/first
         cp -r ${workdir} ${D}/home/first
         #install -m 0755 ${S} ${D}/home/first
}


FILES_${PN} += "/home/first"

有人可以指导我吗?提前致谢。

解决方法

喜欢评论建议:

SUMMARY = "Simple test application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "file://src/*     \
           file://include/* \
           file://CMakeLists.txt \
          "

S = "${WORKDIR}"

inherit pkgconfig cmake

如果 CMakeLists.txt 使用安装命令,那么 bitbake 将为您安装,您无需定义自己的 do_install。有关详细信息,请参阅 cmake-documentation-install。这是二进制文件的示例:

install(TARGETS <your cmake target> DESTINATION bin)

来自 cmake 安装文档:

如果给出完整路径(带前导斜杠或驱动器号),则为 直接使用。如果给出了相对路径,则将其解释为相对路径 到 CMAKE_INSTALL_PREFIX 变量的值。