Yocto:oe_runmake 失败,来自 bitbake 镜像的 do_compile 错误

7
我正在构建Yocto镜像,但对此还是新手。当我输入bitbake piflo命令(piflo是我的镜像名称)时,出现了一个错误,如下图所示: oe_runmake failed with do_compile 它显示ERROR: batctl-2017.1-r0 do_compile: oe_runmake failed并且来自makefile的pkg-config not found.
我在网上找到了一些解决方法并尝试了一下,但是它给了我与上图相同的错误。它之前可以构建,但在获取新的batctl和batman-adv之后就无法构建了。
有人有任何想法吗?请在这里帮助我。
如果需要更多信息或代码,我会进行编辑。
提前谢谢。
2个回答

6
听起来像是个损坏的包。首先,尝试清理并重建它。
bitbake -c cleanall batctl  
bitbake -c cleanall batman-adv  
bitbake batman-adv  
bitbake batctl

此外,您实际需要这些软件包吗?如果不需要,请通过将其添加到local.conf中来删除它们。
IMAGE_INSTALL_remove = " batctl batman-adv "

谢谢您回答我的问题。我实际上需要那些软件包..:'( 我尝试了您在答案中写的,bitbake batman-adv 进行得很顺利,但 bitbake batctl 给了我与我问题中相同的错误... :'( - paulc1111
不是主机机器。在do_compile步骤中,bb recipe通常调用“make”或“oe_runmake”,因此它只执行makefile。在源代码中,我看到了PKG_CONFIG = pkg-config
ifeq ($(shell which $(PKG_CONFIG) 2>/dev/null),)
$(error $(PKG_CONFIG) not found)
endif
这意味着您的构建系统(我假设是PC)可能没有安装pkg-config。
- metamorphling
Yocto 不使用主机的 pkg-config,因此那不是问题所在。在有问题的配方中使用 "inherit pkgconfig" 可能会帮助找到 Yocto 的 pkg-config。 - Jussi Kukkonen
哇,这很奇怪。Makefile 检查 "which pkg-config" 命令是否返回二进制文件的路径,如果没有,则假定您的系统上没有该文件,并且会发生故障。作为一种肮脏的解决方法,您可以注释掉第 62-67 行并检查它是否有所帮助。 - metamorphling
2
@jku @metamorphling 感谢你们的回复,我已经弄清楚了我的错误。在bb文件中,我最初只写了DEPENDS = "libnl",但是在我将其更改为DEPENDS = "libnl pkgconfig-native"后,它就可以顺利通过了!:D 非常感谢你们的帮助! - paulc1111
显示剩余4条评论

2

是的,就像你刚发现的那样,你需要将 pkg-config 添加到你的食谱的 DEPENDS 中。

在早期的 OpenEmbedded(Yocto)中,通常仍能正常工作,因为其他一些食谱已经将 pkg-config 添加到了它们的 DEPENDS 中。然而,从 Pyro 版本开始,每个食谱都有自己的 sysroot;因此,你必须明确地将食谱需要的所有内容添加到其 DEPENDS 中。这样做是为了提高构建过程中的确定性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接