我正在使用 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
文件,但它不起作用。
首先,你说:
在同一位置我有一个 .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