[尝试在我的图像中打包符号链接时,yocto构建中的质量检查问题

问题描述 投票:1回答:1

继承自动工具后,我试图使用yocto构建我的库。我需要在最终映像中打包“ .so”文件,因为我的应用程序在运行时会动态链接该库。但是我在最终图像中找不到我的.so文件,相反,我可以看到“ .so.0”和“ .so.0.0.0”。因此,我尝试在食谱中添加以下规则。

FILES_SOLIBSDEV = ""
FILES_${PN} += "${libdir}/"

添加这个给我一个错误。

ERROR: QA Issue: non -dev/-dbg/-nativesdk package contains symlink .so:

我可以理解“ .so”文件是符号链接,我无法将它们打包在映像中,因为它们是供开发人员软件包使用的。但是我不知何故需要目标图像中的“ .so”文件。有什么出路吗?

注意:在应用程序源代码中将“ .so.0.0.0”修改为一个选项,但这是最不推荐的。

linux build embedded-linux autotools yocto
1个回答
5
投票

最佳解决方案是使您的应用程序链接到版本库文件。

为了避免在打包未版本化的.so文件时出现质量检查错误,您应该添加

INSANE_SKIP_${PN} = "dev-so"

根据您的食谱。这样可以避免对程序包dev-so运行${PN}测试。


0
投票

我面临类似的问题。甚至包括[]之后

INSANE_SKIP_${PN} = "dev-so"

在bb文件中,我收到以下编译错误:

ERROR: pulseaudio-12.0-12-r20pulseaudio_v12_14Nov do_package_qa: QA Issue: non -dev/-dbg/nativesdk- package contains symlink .so: pulseaudio-misc path '/work/sa8155-webos-linux/pulseaudio/12.0-12-r20pulseaudio_v12_14Nov/packages-split/pulseaudio-misc/usr/lib/libpulse.so'
non -dev/-dbg/nativesdk- package contains symlink .so: pulseaudio-misc path '/work/sa8155-webos-linux/pulseaudio/12.0-12-r20pulseaudio_v12_14Nov/packages-split/pulseaudio-misc/usr/lib/libpulse-mainloop-glib.so'
non -dev/-dbg/nativesdk- package contains symlink .so: pulseaudio-misc path '/work/sa8155-webos-linux/pulseaudio/12.0-12-r20pulseaudio_v12_14Nov/packages-split/pulseaudio-misc/usr/lib/libpulse-simple.so' [dev-so]
ERROR: pulseaudio-12.0-12-r20pulseaudio_v12_14Nov do_package_qa: QA run found fatal errors. Please consider fixing them.
ERROR: pulseaudio-12.0-12-r20pulseaudio_v12_14Nov do_package_qa: Function failed: do_package_qa
© www.soinside.com 2019 - 2024. All rights reserved.