bitbake编译foo.bb报json-c/json.h不存在如何配置依赖解决
Bitbake编译找不到json-c头文件修复方案
依赖项选择结论
直接在foo.bb的DEPENDS中添加json-c依赖即可,不需要修改RDEPENDS。
原因说明
两个依赖变量的作用边界完全不同:
DEPENDS对应编译期构建依赖:作用于do_configure/do_compile等构建流程阶段,构建系统会提前将该列表中包的头文件、链接库等资源导入到编译专用的sysroot环境,供编译工具链查找使用。凡是编译阶段需要用到的头文件、静态库、链接期需要的动态库,都必须配置在这个变量里。RDEPENDS对应目标运行时依赖:仅在软件打包、部署到目标设备启动运行的阶段生效,用来保证程序运行时能找到需要的动态库、可执行脚本、配置文件等资源,完全不参与编译阶段的环境准备,加在这里不会解决编译阶段找不到头文件的问题。
具体修复操作
在你的foo.bb配方中添加如下配置:
DEPENDS += "json-c"
补充说明
从提供的编译日志看,gcc参数中已经添加了-ljson-c链接参数,但是因为没有配置编译期依赖,sysroot环境中根本没有导入json-c的头文件和库文件,才会触发头文件找不到的致命错误。
另外编译命令中还链接了-lndctl,如果后续编译时出现ndctl相关头文件、库找不到的报错,同样需要把ndctl也追加到DEPENDS列表中。
内容的提问来源于stack exchange,提问作者Mark Kang
相关产品推荐
相关产品推荐

