BitBake找不到另一个食谱的标头文件



我有一个取决于星号的软件包。因为它取决于星号I INCRANCE depends =" atterisk" bitbake file。但是我的源软件包无法找到" atterisk.h",它在asterisk package中可用。我在此命令[do_populate_sysroot]中尝试了" bitbake aterisk -c listtask"。可用。但是从Bitbake期望Asterisk.h居住的地方,可以从那里获取。以下是我在编译食谱时遇到的日志错误。

checking for string.h... (cached) yes
 checking for sys/time.h... (cached) yes
 checking for termios.h... (cached) yes
 checking whether asterisk.h in ../include... no
 checking whether asterisk.h in /usr/include... no
 checking whether asterisk.h in /usr/local/include... no
 checking whether asterisk.h in /opt/local/include... no
 configure: error: Can't find "asterisk.h"

注意:以下config.log文件可能会提供更多信息。

我们可以使用提供商和用户来说明这种情况,软件包(食谱)提供了另一个软件包(食谱)使用的标头文件,是提供商,软件包(食谱)使用来自另一个软件包(食谱)的标题文件是用户。

首先,我们更改提供商的食谱(myprovider.bb)以导出标头文件-Myapi.h,

...
do_install() {
    install -d ${D}/${bindir}
    install -m 755 ${B}/hello_provider ${D}/${bindir}
    install -d ${D}${libdir}/lib_myprovider/
    install -m 0755 ${WORKDIR}/myapi.h ${STAGING_DIR_TARGET}${libdir}/lib_myprovider/
}
...

其次,我们更改用户的食谱(myuser.bb)来引用标题文件-Myapi.h

...
do_compile () {    
    ${CC} ${WORKDIR}/main.c -o hello_user ${CFLAGS} ${LDFLAGS} -I${STAGING_DIR_TARGET}/${libdir}/lib_myprovider/ 
}
# file dependency declaration
FILES_${PN} = "${libdir}/lib_myprovider"
# package dependency declaration
DEPENDS += "myprovider"
...

终于,重建myprovider.bb和myuser.bb食谱,它应该起作用。

最新更新