Yocto 中未正确安装软件包

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

我正在使用 yocto 构建自定义 Linux 映像,并尝试将“libgpiod”包添加到构建的映像中。

libgpiod
食谱位于

project/sources/meta-openembedded/meta-oe/recipes-support/libgpiod

并且在同一位置我有一个

.bbappend
文件添加了一些额外的配置。
.bbappend
只是启用 cxx 绑定的一行代码:

PACKAGECONFIG += "cxx"

我面临的问题是,在我的 Linux 映像中,我找不到

gpiod.h
gpiod.hpp
(cxx 绑定)。

我知道

libgpiod
正在编译和添加,因为我有图像中可用的工具和核心(我可以使用
gpiodetect
,这是gpiod的实用程序),所以我假设yocto成功找到了配方。

在我的

bblayers.conf
文件中:

BBLAYERS = " \
  ${BSPDIR}/sources/poky/meta \
  ${BSPDIR}/sources/poky/meta-poky \
  \
  ${BSPDIR}/sources/meta-openembedded/meta-oe \
  ${BSPDIR}/sources/meta-openembedded/meta-multimedia \
  ${BSPDIR}/sources/meta-openembedded/meta-python \
  \
  ${BSPDIR}/sources/meta-freescale \
  ${BSPDIR}/sources/meta-freescale-3rdparty \
  ${BSP

注意: 如果我将

.bbappend
文件修改为:

PACKAGECONFIG += "python3" 

它编译并将 python3 绑定添加到图像中,所以我不知道为什么它不能与 cxx 一起使用。

参考: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/about/

谢谢!

我尝试添加一个带有“cxx”配置的

.bbappend
文件,但它不起作用。

embedded-linux yocto yocto-recipe libgpiod
1个回答
0
投票

首先,你说:

在同一位置我有一个 .bbappend 文件,它添加了一些额外的内容 配置

这真的非常不推荐。不建议直接修改社区层和核心层,即使您正在创建另一个单独的

.bbappend
文件。

如果您想更新

PACKAGECONFIG
libgpiod
,您可以在自定义图层中创建
bbappend
文件:

bitbake-layers create-layer meta-custom
bitbake-layers add-layer meta-custom
recipetool newappend meta-custom libgpiod

这将为您创建一个

bbappend
文件,然后将
PACKAGECONFIG
放入其中。

如果你不想这样,只需将其设置为

local.conf
:

PACKAGECONFIG:append:pn-libgpiod = " cxx"

现在,回到真正的问题。

libpiod
提供多种套餐:

  • libgpiod
    包含
    libgpiod.so*
    文件
  • libgpiod-dev
    包含头文件的
    /usr/include
    和共享库的
    /usr/lib
    文件以及相应的
    solink
    元数据。
  • pkgconfig
  • 包含
    libgpiod-tools
    ,
    gpiodetect
    , ...
    
    
  • 如果仅将
gpioget

添加到

libgpiod
,您将仅获得共享库。既然你说工具已经存在,那就意味着在某个地方
IMAGE_INSTALL
正在被添加。
您可能需要:

libgpiod-tools

© www.soinside.com 2019 - 2024. All rights reserved.