我正在使用yocto,我只想在我的项目中集成一个新的库。
我创建了一个新的配方名“libxerces”,其中包含一个文件“libxerces-3.1.1.bb”。BB文件非常简单,因为它基于自动工具:
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我的图像测试来构建我的图像,所有的操作都正确完成了,但是libxerces返回一个错误,因为它无法安装。但是,我注意到libxerces dbg、libxerces utils和libxerces示例在/tmp/work/deploy/ipk下可见。我知道libxml2默认集成到poky层中,但我必须使用xerces。
最佳答案
我解决了这个错误
ERROR: Unable to install packages.
Collected errors:
* opkg_install_cmd: Cannot install package libxerces.
重写packages变量。
就你而言:
PACKAGES = "${PN} ${PN}-utils ${PN}-staticdev"
我认为这是因为默认情况下.so文件会转到${pn}-dev包。
我希望有一个更聪明的解决方案,但现在我用这种方式解决了。