gpt4 book ai didi

yocto - 在 Yocto 中,如何包含来自其他配方的头文件

转载 作者:行者123 更新时间:2023-12-04 11:50:57 36 4
gpt4 key购买 nike

我的程序依赖于 poco recipes,它提供了头文件和共享库。但是,我无法使用来自 poco 的头文件。在我的食谱中,这会导致错误 Poco/Delegate.h: No such file for directory .

如何在构建时为我的软件包提供 header ?

这是一个示例食谱:

SUMMARY = ""
DESCRIPTION = ""
AUTHOR = ""
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = ""
HOMEPAGE = ""
BUGTRACKER = ""

S = "${WORKDIR}"

SRC_URI = " file://foo.cpp \
file://CMakeLists.txt \
"

inherit pkgconfig cmake

DEPENDS_foo = "poco"
RDEPENDS_foo = "poco"

do_install() {
install -d ${D}/${bindir}
install -m 755 ${S}/foo ${D}/${bindir}
}

FILES_${PN} = "${bindir}/foo"

最佳答案

我们可以使用 供应商用户 为了说明这种情况,包(配方)提供了一个头文件供另一个包(配方)使用,是供应商 ,包(配方)使用来自另一个包(配方)的头文件是用户 .

首先,我们更改提供者的配方 ( 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 食谱,它应该可以工作。

关于yocto - 在 Yocto 中,如何包含来自其他配方的头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50035143/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com