我的程序依赖于poco提供头文件和共享库的配方。但是,我无法使用poco配方中的头文件,这会导致错误Poco/Delegate.h: No such file for directory.
如何在构建时为我的软件包提供标头?
这是一个示例食谱:
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"
Run Code Online (Sandbox Code Playgroud)
我们可以用provider和user来说明这种情况,包(recipe)提供一个头文件供另一个包(recipe)使用就是provider ,包(recipe)使用另一个包(recipe)的头文件就是用户.
首先我们更改提供程序的配方(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/
}
...
Run Code Online (Sandbox Code Playgroud)
其次,我们更改用户的配方(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"
...
Run Code Online (Sandbox Code Playgroud)
最后,重建 myprovider.bb 和 myuser.bb 食谱,它应该可以工作。
| 归档时间: |
|
| 查看次数: |
6370 次 |
| 最近记录: |