shared-libraries - 错误,包括 petalinux 中的共享预建库
问题描述
我试图在我的 petalinux 项目(基于 Yocto)中简单地包含几个共享库。在petalinux 指南第 65 页的“包括预建库”部分之后,我得到了包含两个库的下一个配方(我只发布了一个,因为另一个相同,但只是更改了名称):
#
# This file is the libpiimager recipe.
#
SUMMARY = "Simple libpiimager application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://libirimager.so \
"
S = "${WORKDIR}"
TARGET_CC_ARCH += "${LDFLAGS}"
INSANE_SKIP_${PN} = "arch"
do_install() {
install -d ${D}/${libdir}
install -m 0755 ${S}/libirimager.so ${D}/${libdir}
}
FILES_${PN} += "${libdir}"
FILES_SOLIBSDEV = ""
构建图像我遇到了下一个错误:
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libstdc++.so.6(CXXABI_ARM_1.3.3), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires ld-linux.so.3, but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libstdc++.so.6, but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libgcc_s.so.1, but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libstdc++.so.6(GLIBCXX_3.4.11), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libstdc++.so.6(GLIBCXX_3.4), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libgcc_s.so.1(GCC_3.5), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires ld-linux.so.3(GLIBC_2.4), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libstdc++.so.6(CXXABI_1.3), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libm.so.6(GLIBC_2.4), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libc.so.6(GLIBC_2.4), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libstdc++.so.6(GLIBCXX_3.4.15), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libstdc++.so.6(GLIBCXX_3.4.9), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libc.so.6, but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libm.so.6, but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimager.so contained in package libpiimager requires libc.so.6(GLIBC_2.15), but no providers found in RDEPENDS_libpiimager? [file-rdeps]
ERROR: libpiimager-1.0-r0 do_package_qa: QA Issue: Architecture did not match (ARM, expected AArch64) on /work/aarch64-xilinx-linux/libpiimager/1.0-r0/packages-split/libpiimager-dbg/usr/lib/.debug/libirimager.so [arch]
ERROR: libpiimager-1.0-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
ERROR: libpiimager-1.0-r0 do_package_qa: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/aarch64-xilinx-linux/libpiimager/1.0-r0/temp/log.do_package_qa.26170
ERROR: Task (/home/josee/hdl/dev/petalinux/sw_vlu/project-spec/meta-user/recipes-apps/libpiimager/libpiimager.bb:do_package_qa) failed with exit code '1'
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: Architecture did not match (ARM, expected AArch64) on /work/aarch64-xilinx-linux/libirimageprocessing/1.0-r0/packages-split/libirimageprocessing-dbg/usr/lib/.debug/libirimageprocessing.so [arch]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libstdc++.so.6(CXXABI_ARM_1.3.3), but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires ld-linux.so.3, but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libstdc++.so.6, but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libgcc_s.so.1, but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libstdc++.so.6(GLIBCXX_3.4.11), but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libstdc++.so.6(GLIBCXX_3.4), but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libstdc++.so.6(CXXABI_1.3), but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires ld-linux.so.3(GLIBC_2.4), but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libm.so.6(GLIBC_2.4), but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libc.so.6(GLIBC_2.4), but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libgcc_s.so.1(GCC_3.5), but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libc.so.6(GLIBC_2.7), but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libstdc++.so.6(GLIBCXX_3.4.9), but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libc.so.6, but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA Issue: /usr/lib/libirimageprocessing.so contained in package libirimageprocessing requires libm.so.6, but no providers found in RDEPENDS_libirimageprocessing? [file-rdeps]
ERROR: libirimageprocessing-1.0-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
ERROR: libirimageprocessing-1.0-r0 do_package_qa: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/aarch64-xilinx-linux/libirimageprocessing/1.0-r0/temp/log.do_package_qa.26173
ERROR: Task (/home/josee/hdl/dev/petalinux/sw_vlu/project-spec/meta-user/recipes-apps/libirimageprocessing/libirimageprocessing.bb:do_package_qa) failed with exit code '1'
ERROR: petalinux-user-image-1.0-r0 do_rootfs: Could not invoke dnf. Command '/home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/recipe-sysroot-native/usr/bin/dnf -y -c /home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/rootfs/etc/dnf/dnf.conf --setopt=reposdir=/home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/rootfs/etc/yum.repos.d --repofrompath=oe-repo,/home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/oe-rootfs-repo --installroot=/home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/rootfs --setopt=logdir=/home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/temp --nogpgcheck install shadow libpiimager libc6 webfwu pciutils libstdc++-dev i2c-tools mtd-utils packagegroup-core-boot watchdog-init busybox-httpd udev-extraconf packagegroup-petalinux-utils libc6-dev openssh-sftp-server canutils bootscript kernel-modules libstdc++6 packagegroup-petalinux-gstreamer run-postinsts base-passwd libomxil-xlnx libusb-1.0-0 libirimageprocessing libm3api2 bridge-utils tcf-agent packagegroup-petalinux-v4lutils hellopm packagegroup-core-ssh-dropbear startup' returned 1:
Added oe-repo repo from /home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/oe-rootfs-repo
Last metadata expiration check: 0:00:01 ago on Fri 10 Apr 2020 03:35:51 PM UTC.
Error:
Problem 1: conflicting requests
- nothing provides libc.so.6(GLIBC_2.15) needed by libpiimager-1.0-r0.aarch64
Problem 2: conflicting requests
- nothing provides libc.so.6(GLIBC_2.7) needed by libirimageprocessing-1.0-r0.aarch64
ERROR: petalinux-user-image-1.0-r0 do_rootfs: Function failed: do_rootfs
ERROR: Logfile of failure stored in: /home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/temp/log.do_rootfs.26188
ERROR: Task (/home/josee/hdl/dev/petalinux/sw_vlu/project-spec/meta-plnx-generated/recipes-core/images/petalinux-user-image.bb:do_rootfs) failed with exit code '1'
我查找了缺少的依赖项,它们都已安装(最后的库版本),例如:
#sudo apt-get install libstdc++6
Reading package lists... Done
Building dependency tree
Reading state information... Done
libstdc++6 is already the newest version (5.4.0-6ubuntu1~16.04.11).
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
#sudo apt-get install libc6
Reading package lists... Done
Building dependency tree
Reading state information... Done
libc6 is already the newest version (2.23-0ubuntu11).
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
我还尝试将它们包含在食谱中,例如:
RDEPENDS_${PN} += "libc6"
RDEPENDS_${PN} += "libstdc++6"
(...)
但仍然找不到库并且错误仍然存在。
有谁知道我为什么会收到这些错误?
编辑:
好吧,它看起来像下面的答案我正在做一些进展,我将建议添加到配方中:
#
# This file is the libpiimager recipe.
#
SUMMARY = "Simple libpiimager application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://libirimager.so \
"
S = "${WORKDIR}"
TARGET_CC_ARCH += "${LDFLAGS}"
INSANE_SKIP_${PN} += "arch"
INSANE_SKIP_${PN} += "file-rdeps"
do_install() {
install -d ${D}/${libdir}
install -m 0755 ${S}/libirimager.so ${D}/${libdir}
}
FILES_${PN} += "${libdir}"
FILES_SOLIBSDEV = ""
我现在的错误减少了,但仍然是下一个:
ERROR: petalinux-user-image-1.0-r0 do_rootfs: Could not invoke dnf. Command '/home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/recipe-sysroot-native/usr/bin/dnf -y -c /home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/rootfs/etc/dnf/dnf.conf --setopt=reposdir=/home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/rootfs/etc/yum.repos.d --repofrompath=oe-repo,/home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/oe-rootfs-repo --installroot=/home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/rootfs --setopt=logdir=/home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/temp --nogpgcheck install libstdc++6 packagegroup-core-ssh-dropbear base-passwd libomxil-xlnx packagegroup-petalinux-utils canutils packagegroup-petalinux-gstreamer hellopm libpiimager run-postinsts openssh-sftp-server libm3api2 libusb-1.0-0 bridge-utils packagegroup-petalinux-v4lutils libirimageprocessing tcf-agent webfwu pciutils libc6 libc6-dev shadow mtd-utils bootscript kernel-modules i2c-tools libstdc++-dev watchdog-init packagegroup-core-boot busybox-httpd udev-extraconf startup' returned 1:
Added oe-repo repo from /home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/oe-rootfs-repo
Last metadata expiration check: 0:00:01 ago on Sun 12 Apr 2020 04:40:52 PM UTC.
Error:
Problem 1: conflicting requests
- nothing provides libc.so.6(GLIBC_2.15) needed by libpiimager-1.0-r0.aarch64
Problem 2: conflicting requests
- nothing provides libc.so.6(GLIBC_2.7) needed by libirimageprocessing-1.0-r0.aarch64
ERROR: petalinux-user-image-1.0-r0 do_rootfs: Function failed: do_rootfs
ERROR: Logfile of failure stored in: /home/josee/hdl/dev/petalinux/sw_vlu/build/tmp/work/plnx_zynqmp-xilinx-linux/petalinux-user-image/1.0-r0/temp/log.do_rootfs.9499
ERROR: Task (/home/josee/hdl/dev/petalinux/sw_vlu/project-spec/meta-plnx-generated/recipes-core/images/petalinux-user-image.bb:do_rootfs) failed with exit code '1'
任何想法为什么我现在有这些错误?
提前致谢。
解决方案
尝试:
INSANE_SKIP_${PN} = "file-rdeps"
您正在配置 Yocto 项目以忽略配方中应包含的依赖项。
示例:如果您有一个 shell 脚本并使用/bin/bash
但未在依赖项中包含 bash,它将启动此 QA,使用INSIDE_SKIP_${PN} = "file-rdeps"
, 解决它,但您必须确定自己在做什么。
推荐阅读
- python - 将值插入与相同多索引值对应的数据帧行
- python - 在python中使用numpy解包和打包除无符号整数以外的位?
- python - 使用 argparse 处理 if-else 的最佳方法?
- java - 如何更改优先队列中的添加顺序
- linux - 我的 id 中缺少哪些访问权限来检查 MQ 状态?
- ansible - 即时创建掌舵图
- postgresql - 我不能在 Docker 中运行超过 2 个容器
- dotnetrdf - 如何在 dotnetrdf QueryBuilder 中保持绑定顺序?
- ms-access - VS 2015 错误:指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配
- android-studio - 当我更改包名称时,我收到此错误“无效的包名称”