Yocto 安装后不需要的文件如何删除?

Luc*_*lon 7 openembedded bitbake yocto yocto-recipe

我正在尝试为 Yocto 中的自定义库创建一个配方。我目前收到此错误:

ERROR: ... do_package: QA Issue: pot-plugin: Files/directories were installed but not shipped in any package:
  /usr/lib/qt5/plugins/mediaservice/a.so.1.0
  /usr/lib/qt5/plugins/mediaservice/a.so.1
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
Run Code Online (Sandbox Code Playgroud)

我已经设置了这些,FILES_${PN}但在这种情况下,Yocto 抱怨那些符号链接太多,并且不属于该包。实际上,正确的做法是将它们也从 sysroot 本身中删除。因此,我尝试定义该do_install步骤,但在创建包之前找不到如何删除这些步骤。我做了类似的事情:

do_install {
   rm <some_path>/a.so.1.0
   rm <some_path>/a.so.1
}
Run Code Online (Sandbox Code Playgroud)

但我找不到正确的使用路径。有人可以解释这是否是解决问题的正确方法,如果是,我应该使用什么路径在安装这些文件之后和创建包之前删除这些文件?谢谢!

ens*_*nsc 7

$D包含安装根目录的路径,因此您可以编写

do_install_append() {
    rm -f ${D}/usr/lib/qt5/plugins/mediaservice/a.so.1.0 ...
}
Run Code Online (Sandbox Code Playgroud)

但您可能也想/usr/lib/qt5/plugins用变量替换。为此,请检查现有变量

bitbake <recipe> -e | less
Run Code Online (Sandbox Code Playgroud)