首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >#包括<botan/botan.h>在Yocto编译中不包含这样的文件或目录

#包括<botan/botan.h>在Yocto编译中不包含这样的文件或目录
EN

Stack Overflow用户
提问于 2020-07-07 04:10:22
回答 2查看 612关注 0票数 0

嗨,我有来自2.14.0.bb?h=master的botan_2.14.0.bb,我已经把它放到我的yocto建筑里了。以下为转数结果:

代码语言:javascript
复制
-rw-r--r-- 2 kjlau kjlau   155436 Jul   7 11:12 libbotan-2-bin-2.14.0-r0.cortexa8hf_neon.rpm
-rw-r--r-- 2 kjlau kjlau   246916 Jul   7 11:12 libbotan-2-doc-2.14.0-r0.cortexa8hf_neon.rpm
-rw-r--r-- 2 kjlau kjlau    16376 Jul   7 11:12 libbotan-2-python3-2.14.0-r0.cortexa8hf_neon.rpm
-rw-r--r-- 2 kjlau kjlau   255764 Jul   7 11:12 libbotan-2-dev-2.14.0-r0.cortexa8hf_neon.rpm
-rw-r--r-- 2 kjlau kjlau  1443276 Jul   7 11:12 libbotan-2-13-2.14.0-r0.cortexa8hf_neon.rpm
-rw-r--r-- 2 kjlau kjlau 19660652 Jul   7 11:13 libbotan-2-dbg-2.14.0-r0.cortexa8hf_neon.rpm

我尝试构建一个包含botan头#include 的应用程序,我没有收到这样的文件或目录。下面是botanapp.bb内容

代码语言:javascript
复制
DECRIPTION = "Simple helloworld application"
LICENSE = "CLOSED"
DEPENDS = "botan"
PACKAGES = "${PN} ${PN}-dbg"
SRC_URI = "file://app.cpp"

S = "${WORKDIR}"
CXXFLAGS = "-g -std=gnu++11"
inherit pkgconfig autotools

do_compile() {
    
     ${CXX} ${CXXFLAGS} ${LDFLAGS} -I ${includedir}/botan-2/botan   ${S}/app.cpp -lbotan-2  -o ${S}/myBotan
}

do_install() {
    install -d ${D}${bindir}
    install -m 0755  ${WORKDIR}/myBotan ${D}${bindir}
}

FILES_${PN} += " \
        ${bindir}/myBotan \
"

我已经检查了我的植物学配方??植物学的系统根。

代码语言:javascript
复制
$build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/botanapp/1.0-r0/recipe-sysroot/usr/include/botan-2/botan
$ ls botan*
    botan.h

标题是可用的,我不知道wrong.To我的知识,我需要这样做

代码语言:javascript
复制
g++ app.cpp -I/usr/local/include/botan-2 -lbotan-2

在ubuntu中编译僵尸代码。如果我做错了什么,请告诉我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-07 08:46:28

代码语言:javascript
复制
do_compile() {
     ${CXX} ${CXXFLAGS} ${LDFLAGS}  -o ${S}/botanBinary -I ${STAGING_DIR_TARGET}/${includedir}/botan-2 ${S}/app.cpp  -lbotan-2 
}

这对我来说很有用,如果有什么不合理的话,请告诉我。谢谢

票数 1
EN

Stack Overflow用户

发布于 2020-07-07 07:10:18

你需要的是INCDIR。${includedir}是文件在图像中的位置。目标也是如此。

但是根据实际情况,你要求Yocto准备一个包含所有东西的sysroot来构建配方。STAGING_INCDIR正在指向那个sysroot。

例如,可以使用includedir来告诉安装命令将文件放在映像中的位置。

找出其他菜谱是如何做到这一点是相当容易的。源中的grep -r ' -I'将指向使用编译器命令的许多菜谱。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62768005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档