如何在yocto

时间:2016-04-15 15:57:12

标签: embedded-linux yocto

现在我正在编写与使用yocto的嵌入式系统相关的主人。 我有一个ua-SDK(包括源代码)。我需要将ua包安装到sato-image,它在Raspberrypi上运行。

首先,我写了一个食谱" opcua"像这样:

SUMMARY = "this is a recipe for building opc-ua sdk package"
LICENSE = "MIT & RCL & OpenSSL & LGPL-3.0 & Apache-2.0"
LIC_FILES_CHKSUM = "file:///home/yocto/workspace/poky/rpiHouseHello/tmp/work/armv6-vfp-poky-linux-gnueabi/ua-new/1.0-r0/license-destdir/ua-new/generic_Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 
SRC_URI = "file:///home/yocto/workspace/poky/rpiHouseHello/downloads/uasdkcppclient-src-linux32-x86-gcc4.5.1-v1.4.2-275.tar.gz"
S = "${WORKDIR}/sdk/src"
DEPENDS += "libxml2 openssl"
inherit cmake  
INSANE_SKIP_ua-new += "dev-deps" 

opcua之后成功安装了$bitbake opcua个包。然后我尝试通过编写另一个opcua这样的食谱

,将生成的sato-with-ua包添加到sato-image中
DESCRIPTION = ""
IMAGE_FEATURES += "splash package-management x11-base x11-sato ssh-server-openssh hwcodecs dbg-pkgs tools-debug debug-tweaks"
LICENSE = "MIT"
inherit core-image
IMAGE_INSTALL += " ua ua-dbg ua-staticdev ua-dev"  

它也成功安装。之后,我使用以下方法从此图像中提取SDK:

$bitbake sato-with-ua -c populated_sdk

也没问题。之后,我尝试检查这个提取的SDK的功能。我的导师给了我一个用c ++编写的测试项目。我尝试在eclipse中构建这个项目。

但问题来了,Eclipse无法通过链接库找到调试库--- lib * d(例如libuabased.a)。我发现我的包中有libuabase.a但没有libuabased.a。包裹的位置:/home/yocto/workspace/poky/rpiHouse/tmp/work/armv6-vfp-poky-linux-gnueabi/opcua/1.0-r0/packages-split。在Eclipse中,我们在调试版本中开发项目,因此它也需要调试版本的库。

我很困惑,为什么yocto只安装了发布库而不是调试库。两者都包含在源代码中。 yocto只能安装一种类型? 所以我尝试修改opcua配方,将调试库包含到我的packages-split中。在阅读了yocto的参考资料之后,我将以下内容添加到我的食谱中,并且#34; opcua":

PACKAGES =+ " ${PN}-alibd ${PN}-solibd"
FILES_${PN}-alibd = "${libdir}/libstackd.so"
FILES_${PN}-solibd = "${libdir}/libuabased.a ${libdir}/libuaclientd.a ${libdir}/libuapkid.a ${libdir}/libxmlparserd.a"

bitbake opcua之后我确实得到了两个新包${PN}-alibd and ${PN}-solibd,但两个包都是空的。我列出的所有这些库都不包括在内。

我的第一个问题是,此变量${libdir}是否表示我们的主机/usr/lib?我发现该目录中没有lib*d.a个文件。所以我想也许我理解这个变量会犯错误。这个${libdir}提到了什么?

我的第二个问题,如何在咬完食谱后将这些调试库安装到我的包中?我的目标是我可以在sato-with-ua图像und中获取这些调试库,然后从该图像中提取SDK。这个SDK包含了那些调试库,以便我可以在Eclipse中链接它们来开发我的项目正确。

我很抱歉,我讲了一个很长的故事。这是我第一次制作与软件相关的东西。所以我请求你的appologise。

0 个答案:

没有答案