Yocto环境下如何将libmosquitto.so安装到目标文件系统中
问题原因
OpenEmbedded的mosquitto配方默认采用了子包拆分规则:
- 主包
mosquitto仅包含守护进程、服务配置等运行mosquitto服务所需的文件 - 运行时动态库
libmosquitto.so.1及对应版本软链接单独打包在libmosquitto1子包 - 开发用无版本号软链接
libmosquitto.so、头文件等打包在libmosquitto-dev子包
你已经验证了do_install阶段库已经被正确生成到工作目录的image路径,说明不需要修改do_install逻辑,你之前写的do_install_append代码不仅多余,还会因为${FILES_libmosquitto1}是文件列表变量而非实际文件路径引发构建错误,建议直接删除该段配置。
解决方法
只需要把对应的库子包添加到你的rootfs打包列表即可,有两种配置方式可选:
- 临时测试可以直接修改构建目录下的
conf/local.conf,添加如下配置:IMAGE_INSTALL:append = " libmosquitto1" - 要固化到自定义镜像配方的话,直接在你的image.bb对应配置段添加上述内容即可。
如果你的目标设备需要做基于mosquitto的二次开发,还需要额外添加开发包:
IMAGE_INSTALL:append = " libmosquitto1 libmosquitto-dev"
内容的提问来源于stack exchange,提问作者Martiinz
相关产品推荐
相关产品推荐

