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

如何在Yocto构建中安装pcsc-lite的dev及lib文件?

我希望让PCSC-lite配方中FILES_${PN}-dev和FILES_${PN}-lib部分的文件安装到生成的镜像中。但添加该配方后,仅FILES_${PN}中的文件被安装,其余文件未安装。我正在从旧的Rocko版本镜像迁移,此前在该版本中这些文件能正常存在,请问有什么方法可以让生成的镜像包含这些dev和lib文件?

解决方法

1. 显式添加子包到镜像安装列表

在你的镜像配方(如core-image-xxx.bb)中,将对应子包添加到IMAGE_INSTALL变量:

IMAGE_INSTALL += "pcsc-lite-dev pcsc-lite-lib"

注:需确认子包名称与配方PACKAGES定义完全一致,部分配方可能将lib子包命名为pcsc-lite-libs,需对照pcsc-lite_1.9.0.bb里的配置调整。

2. 排查配方包拆分逻辑的版本差异

Rocko版本的pcsc-lite配方可能未拆分${PN}-dev和${PN}-lib子包,相关文件直接包含在主包${PN}中;而Hardknott版本的配方做了规范拆分,将头文件、开发工具归到${PN}-dev,共享库归到${PN}-lib。这种情况下必须显式安装子包才能获取对应文件。

你可以查看配方中的相关定义确认:

# 配方中典型的包拆分配置示例
PACKAGES += "${PN}-lib ${PN}-dev"
FILES_${PN}-lib = "${libdir}/libpcsclite.so.*"
FILES_${PN}-dev = "${includedir}/pcsc/ ${libdir}/libpcsclite.so ${libdir}/pkgconfig/"

3. 通过应用依赖自动拉取子包

如果是有应用需要这些dev/lib文件,在应用配方中添加对应依赖:

  • 编译时依赖(获取头文件、静态库等):
DEPENDS += "pcsc-lite"
  • 运行时依赖(获取共享库):
RDEPENDS_${PN} += "pcsc-lite-lib"

构建镜像时,BitBake会自动拉取这些依赖包到镜像中。

4. 检查PACKAGE_CLASSES配置

确保local.conf中的PACKAGE_CLASSES未限制子包生成,默认配置(如PACKAGE_CLASSES ?= "package_deb")会正常生成所有子包,无需额外调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:30:52