我正在使用Yocto为我们的自定义板(IMX7)构建二进制文件.我需要一些库,如UTF-32.so,UTF-16.so,UTF-7所以从glibc包为蓝牙文件传输。但是这些库在rootfs中不可用,只有/usr/lib/gconv下可用的文件是gconv模块和1.so 8859-1.so。因此,我试图通过添加具有以下内容的新bbappend文件glibc_2.24.bbappend来添加这些库
FILES_${PN} += "${libdir}/gconv/*"
do_install_locale_append() {
cp -r ${dest}${libdir}/gconv ${D}${libdir}/
}但是,它会导致以下错误:
ERROR: glibc-2.24-r0 do_populate_sysroot: The recipe glibc is trying to install files into a shared area when those files already exist. Those files and their manifest location are:
build_dir/tmp/sysroots/esomimx7d/usr/lib/gconv/ISO-2022-CN.so Matched in b'manifest-esomimx7d-glibc-locale.populate_sysroot'
build_dir/tmp/sysroots/esomimx7d/usr/lib/gconv/ARMSCII-8.so Matched in b'manifest-esomimx7d-glibc-locale.populate_sysroot'
......然后,我试图从图像中删除glibc-locale,但是由于一些依赖问题,我无法做到这一点。
有人能帮我把上面提到的库添加到rootfs中吗?
发布于 2018-01-22 11:00:46
错误在于告诉你问题的答案。这些文件是glibc-locale配方的一部分,所以您只需要将正确的包安装到rootfs中。
$ oe-pkgdata-util find-path \*/UTF-7.so
glibc-gconv-utf-7: /usr/lib/gconv/UTF-7.so因此,您需要添加glibc-gconv-utf-7 (或-utf-32等)到您的图像中。
发布于 2018-01-19 13:21:13
您可以删除thm并重新编译,它将工作。
rm build_dir/tmp/sysroots/esomimx7d/usr/lib/gconv/ISO-2022-CN.so
rm build_dir/tmp/sysroots/esomimx7d/usr/lib/gconv/ARMSCII-8.so这是为了工作,只是我们需要的是终结者的溶胶。这些文件属于glibc-locale,因此您需要安装所需的包。
$ oe-pkgdata-util find-path */UTF-7.so >/usr/lib/gconv/UTF-7
将glibc-gconv-utf-7 (或-utf-32等)添加到食谱图像(例如核心图像-最小)中。
https://stackoverflow.com/questions/48334645
复制相似问题