You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Yocto中打包带符号链接的版本化与无版本化共享库?

解决Yocto打包版本化共享库的QA错误

问题原因

Yocto默认将不带版本号的.so符号链接(如libVersioned.so)归类为开发文件,应放在-dev包中。当主包(${PN})包含这类符号链接时,QA检查会触发错误。你的需求是将libUnversioned.so、libVersioned.so(符号链接)和libVersioned.so.1.0.0都放在主包中,因此需要调整配方配置绕过对应QA检查。

解决方案

修改Yocto配方的打包配置,添加INSANE_SKIP跳过主包的dev-so QA检查,同时确保文件路径配置正确:

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

FILES:${PN}-dev += " \
    ${includedir}/abc \
    ${libdir}/cmake \
"

FILES:${PN} += " \
    ${libdir}/libUnversioned* \
    ${libdir}/libVersioned* \
"

# 跳过主包中包含dev类型.so文件的QA检查
INSANE_SKIP:${PN} += "dev-so"

说明

  • INSANE_SKIP:${PN} += "dev-so":禁用针对主包的dev-so检查项,允许主包包含原本属于开发包的.so符号链接。
  • FILES_SOLIBSDEV = "":确保-dev包不会包含这些.so文件/符号链接,避免文件冲突。
  • 你的FILES:${PN}配置已正确覆盖需要包含的三个文件,无需额外调整。

应用上述配置后重新构建配方,QA错误将被消除,主包会包含你需要的三个文件。

内容的提问来源于stack exchange,提问作者Harry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:02:16