我有一个取决于星号的软件包。因为它取决于星号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食谱,它应该起作用。