相关疑难解决方法(0)

ld.so.preload 与 x86_32 和 x86_64 没有区别

— 众所周知,如果编译时支持 x86_64 内核,则可以使用 x86_64 内核运行 x86_32 程序。但是动态链接器不提供任何方法来为 32 位程序定义一组单独的预加载库,因此每次运行这样的程序时,如果您使用 x86_64 预加载,您将面临以下错误消息:

ERROR: ld.so: object '… … …' from /etc/ld.so.preload cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Run Code Online (Sandbox Code Playgroud)

如果您将相同的 x86_32-libraries 列表放在那里进行预加载,您将使其工作,但所有纯 x86_64 运行也会开始抱怨。

显然,最好的方法是修改动态加载器以支持从单独的文件进行预加载,但这至少是一个漫长的过程。你能想到一些干净的解决方法吗?...

现在我正在考虑一些multi-class-pre-load.so,它可以自己加载所需的文件,但是,正如我所看到的,ELF 中没有“多类”支持。

dynamic-linking elf x86 dynamic-loading

2
推荐指数
1
解决办法
4583
查看次数

标签 统计

dynamic-linking ×1

dynamic-loading ×1

elf ×1

x86 ×1