0

我正在使用这个配方,默认情况下它不会复制生成的 .a lib(我认为它只需要使用标头)

我正在尝试将生成的 libspdlog.a 放入我的 sysroot 中,但我似乎无法做到这一点。我将配方复制到我的层(无论如何都必须这样做,因为我的项目引用了旧版本的 meta-oe)

到目前为止,我已经尝试过:

FILES_${PN} += "${libdir}/libspdlog.a"
FILES_${PN}-dev += "${libdir}/libspdlog.a"
FILES_${PN}-staticdev += "${libdir}/libspdlog.a" 

do_install() {
    install -d ${D}${libdir}
    install -m 0644 libspdlog.a ${D}${libdir}
 }

我很确定 do_install 没有被调用。我必须添加到我的 IMAGE_INSTALL spd-dev 所以也许这与它有关

谢谢

4

1 回答 1

0

do_install是对的,现在就拥有FILES_${PN} += "${libdir}/libspdlog.a"

如果您在复制时保留了配方的相同名称,则需要添加以下内容IMAGE_INSTALL_append = " spdlog"(在其中一个local.conf或图像配方中,如果有的话)以放入图像中。

验证do_install工作正常:

  • 在您的构建文件夹(您从中发出 bitbake 的位置)内将有tmp/work(如果您没有在您的local.conf.
  • 找到您的食谱文件夹的位置<recipe_name>/<recipe_version>(例如spdlog/1.8.0-r0/
  • 里面会有一个packages-split/spdlog文件夹
  • 在里面你应该看到你的结构usr/lib/libspdlog.a
于 2020-10-05T10:50:15.437 回答