我的库具有依赖关系树,即某些依赖项具有我要预加载的其他依赖项。我该怎么办?
NA
对LD_PRELOAD \
/opt/yocto/2.5.1/sysroots/core2-64-poky-linux/usr/lib/libicudata.so.60 \
/opt/yocto/2.5.1/sysroots/core2-64-poky-linux/usr/lib/libicuuc.so.60 \
/opt/yocto/2.5.1/sysroots/core2-64-poky-linux/usr/lib/libicui18n.so.60 \
/opt/yocto/2.5.1/sysroots/core2-64-poky-linux/usr/lib/libQt5Core.so.5 \
MyApp
调用所包含的内容进行了排序,以便在依赖库之前列出依赖项。
链接器引发以下错误:
LD_PRELOAD
是否可以按正确的顺序预加载库以实现依赖关系?
答案 0 :(得分:1)
此错误:
ld.so: object '/opt/yocto/2.5.1/sysroots/core2-64-poky-linux/usr/lib/libQt5Core.so.5' \
from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
表示动态加载程序尝试打开该库并失败。
此失败的可能原因有以下几种:
ls -L /opt/yocto/2.5.1/sysroots/core2-64-poky-linux/usr/lib/libQt5Core.so.5
确认存在MyApp
为64位时为32位ELF,反之亦然)。使用file MyApp
和file libQt5Core.so.5
确认它们匹配。MyApp
与newlib
或uClibc
链接了,但是libQt5Core.so.5
是用GLIBC构建的(反之亦然)。