Yocto如何将blkid.h头文件添加到根文件系统
问题解决方案
你需要添加的是libblkid-dev软件包,相关说明如下:
- Yocto 对软件包默认做了功能拆分:你找到的
libblkid1是纯运行时动态库包,util-linux-blkid是blkid对应的命令行工具包,这两个包都不包含编译所需的头文件。所有编译阶段依赖的头文件、静态库、pkgconfig配置文件都会独立放在带-dev后缀的开发包中。 - blkid.h 是libblkid对应的开发头文件,归属
libblkid-dev包,该包默认不会安装到根文件系统,需要主动添加。
操作指引
场景1:需要在目标板根文件系统中直接编译代码
在构建配置文件conf/local.conf中添加如下配置即可:
IMAGE_INSTALL:append = " libblkid-dev"
场景2:自研应用通过Yocto recipe交叉编译打包
不需要往镜像中额外安装libblkid-dev,仅需要在你自研应用的recipe中添加编译依赖即可,Yocto会自动将头文件导入编译用的sysroot供交叉编译调用:
DEPENDS += "util-linux"
注意:非必要不要把
-dev类开发包塞入最终发布的镜像,会显著增加镜像体积,仅在目标板需要本地编译的场景下安装即可。
内容的提问来源于stack exchange,提问作者tomi7654
相关产品推荐
相关产品推荐

