【发布时间】:2017-05-10 17:12:40
【问题描述】:
我有基于 yocto 项目创建的自定义映像,可在 Zynq 上的 Arm cortex A9 处理器上运行。我在我的 Linux 机器上使用交叉编译器编译我的应用程序,并尝试在 Arm 上运行它。但它给出了一个错误,要求它找不到 libstdc++6 库。这个库实际上不包含在我的图像中。当我手动将 libstdc++.so.6 复制到目标上的 /lib 文件夹时,它运行成功。因此,我想构建我的图像以包含该库本身。我尝试创建如下所示的食谱
DESCRIPTION = "Copy necessary lib files to rootfs/lib directory"
LICENSE = "CLOSED"
PACKAGE_ARCH = "all"
SRC_URI += " \
file://libstdc++.so.6 \
file://libstdc++.so.6.0.22 \
"
do_install () {
install -d ${D}${base_libdir}/
install -m 755 ${WORKDIR}/libstdc++.so.6 ${D}${base_libdir}/
install -m 755 ${WORKDIR}/libstdc++.so.6.0.22 ${D}${base_libdir}/
}
FILES_${PN} += " \
${base_libdir}/libstdc++.so.6 \
${base_libdir}/libstdc++.so.6.22 \
"
但它给出了这些库已经存在于共享区域中的错误。但我无法弄清楚如何从该共享区域复制到图像中的 /lib 目录。这是错误:
错误:my-recipe-1.0-r0 do_packagedata:食谱 my-recipe 正在尝试 当这些文件已经存在时,将文件安装到共享区域。 这些文件及其清单位置是:
/home/myUser/REPOS/my-platform/build/tmp-glibc/sysroots/my-board-xc7z030/pkgdata/runtime-reverse/libstdc++6 匹配在 b'manifest-my-board-xc7z030-gcc-runtime.packagedata' /home/myUser/REPOS/my-platform/build/tmp-glibc/sysroots/my-board-xc7z030/pkgdata/runtime-reverse/libstdc++-dev 在b'manifest-my-board-xc7z030-gcc-runtime中匹配。包数据'请 验证哪个配方应该提供上述文件。
那么将标准库放入镜像的正确方法是什么?
谢谢!
【问题讨论】:
标签: image arm standards bitbake