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

使用Petalinux构建特定应用时zynqRegs依赖警告求助

解决Petalinux中zynqRegs的libc依赖警告问题

先搞懂警告到底在说什么

WARNING: zynqRegs-1.0-r0 do_package_qa: QA Issue: /usr/bin/zynqRegs contained in package zynqRegs requires libc.so.6()(64bit), but no providers found in RDEPENDS_zynqRegs? [file-rdeps]

这个警告的核心意思是:你的zynqRegs二进制程序依赖64位版本的libc.so.6库,但在你当前给zynqRegs包声明的依赖(RDEPENDS_zynqRegs)里,找不到能提供这个库的包。Yocto/Petalinux的QA检查会验证每个二进制文件的依赖都有对应的包声明,避免最终镜像里出现缺失库的情况。

你之前加的RDEPENDS_${PN} += "libc.so.6"之所以没用,是因为**RDEPENDS需要的是包名,不是具体的库文件名**——libc.so.6是库文件,而提供它的包是glibc,这才是你应该声明的依赖。

具体解决步骤

  • 修正依赖声明:打开你的zynqRegs.bb文件,把之前错误的依赖语句替换成:

    RDEPENDS_${PN} += "glibc"
    

    因为在Yocto/Petalinux的包体系里,64位的libc.so.6就是由glibc包提供的,架构相关的细节会由构建系统自动处理,不用你手动指定64位后缀。

  • 验证依赖关系(可选但推荐):你可以先确认zynqRegs确实依赖这个库,在构建环境里执行:

    readelf -d /path/to/build/tmp/work/.../zynqRegs/usr/bin/zynqRegs | grep NEEDED
    

    输出里应该能看到libc.so.6的条目,确认依赖没问题。

  • 清理缓存重新构建:有时候旧的构建缓存会导致依赖声明不生效,先清理zynqRegs的构建产物:

    petalinux-build -c zynqRegs -x cleanall
    

    然后重新构建这个包:

    petalinux-build -c zynqRegs
    

    这时候QA警告应该就消失了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:06:55