LD_PRELOAD 多个相互依赖的库
LD_PRELOAD multiple interdependent libraries
我有一个带有依赖关系树的库,即一些依赖关系有我想要预加载的其他依赖关系。我该怎么做?
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
调用包含已排序,因此依赖项列在依赖库之前。
链接器抛出以下错误:
ERROR: 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.
能否预加载库以按正确的顺序完成依赖项?
这个错误:
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 构建的(反之亦然)。
我有一个带有依赖关系树的库,即一些依赖关系有我想要预加载的其他依赖关系。我该怎么做?
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
调用包含已排序,因此依赖项列在依赖库之前。
链接器抛出以下错误:
ERROR: 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.
能否预加载库以按正确的顺序完成依赖项?
这个错误:
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 构建的(反之亦然)。