【问题标题】:How to add a new library using Yocto如何使用 Yocto 添加新库
【发布时间】:2015-03-01 10:40:34
【问题描述】:

我正在使用 Yocto,我只想在我的项目中集成一个新库。

我创建了一个新的配方名称“libxerces”,其中包含一个文件“libxerces-3.1.1.bb”。 bb 文件非常简单,因为它是基于 autotools 的:

DESCRIPTION = "Xerces-c is a validating xml parser written in C++"
HOMEPAGE = "http://xerces.apache.org/xerces-c/"
PRIORITY = "optional"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"

PR = "r1"

SRC_URI = "http://mirror.bit.edu.cn/apache//xerces/c/3/sources/xerces-c-${PV}.tar.gz"

s="${WORKDIR}/xerces-c-${PV}"

inherit autotools pkgconfig

SRC_URI[md5sum] = "6a8ec45d83c8cfb1584c5a5345cb51ae"
SRC_URI[sha256sum] = "a42785f71e0b91d5fd273831c87410ce60a73ccfdd207de1b805d26d44968736"

PACKAGES =+ "${PN}-utils"

FILES_${PN} = "${libdir}/*.so"
FILES_${PN}-utils = "${bindir}/*"
FILES_${PN}-staticdev = "${libdir}/*.a"*

BBCLASSEXTEND += "native"

我使用 IMAGE_INSTALL += "libxerces" 将 "libxerces" 添加到我的 bb 图像中。然后,我尝试通过 bitbake my-image-test 构建我的图像,并且一切都正确完成,但 libxerces 返回错误,因为它无法安装。但是,我注意到 libxerces-dbg、libxerces-utils、libxerces-samples 在 /tmp/work/deploy/ipk 下可见。我知道 libxml2 默认集成到 poky 层中,但我必须使用 xerces ..

【问题讨论】:

    标签: linux autotools xerces-c recipe yocto


    【解决方案1】:

    我解决了这个错误

    ERROR: Unable to install packages.
    Collected errors:
     * opkg_install_cmd: Cannot install package libxerces.
    

    覆盖 PACKAGES 变量。

    在你的情况下:

    PACKAGES = "${PN} ${PN}-utils ${PN}-staticdev"
    

    我认为这是因为 .so 文件默认转到 ${PN}-dev 包。

    我希望有一个更聪明的解决方案,但现在我以这种方式修复。

    【讨论】:

    • 是的,我也做过同样的事情。我会发布这个,但图书馆对我的董事会来说太大了。我现在正在使用 libxml2 :)
    【解决方案2】:

    如果您正在构建一个库并且该库提供静态链接,您可以控制哪些静态库文件(*.a 文件)包含在构建的库中。

    meta/conf/bitbake.conf 配置文件中的 PACKAGES 和 FILES_* 变量定义了 do_install 任务安装的文件如何打包。默认情况下,PACKAGES 变量包含 ${PN}-staticdev,代表所有静态库文件。

    【讨论】:

    • 是的,PACKAGES 变量定义为 PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-dev ${PN}-static ${PN }-locale” 到 /meta/conf/bitbake.conf 配置文件中。我是否需要在配方中包含 PACKAGES += "${PN}-utils" FILES_${PN}-staticdev += "${libdir}/*a" 之类的内容?
    【解决方案3】:
    FILES_${PN}-staticdev =""    # for static libs
    
    FILES_${PN}-dev =""          # for dynamic libs
    
    FILES_${PN}-dbg =""          # for debug options
    

    您需要将以上行添加到您的食谱中

    【讨论】:

      猜你喜欢
      • 2018-06-16
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多