我需要制作ELF二进制文件以便于科学目的使用另一个版本的
最有效的方法是什么,可以使二进制文件使用我所需的libc版本? 编辑:我没有二进制文件的源代码。 编辑:错误消息已编辑。没有SELinux,没有AppArmor。
libc.so
。我尝试使用LD_PRELOAD
和patchelf
工具来实现,但是二进制文件运行时出现错误,例如:./a.out: error while loading shared libraries: libc-2.15.so: cannot open shared object file: No such file or directory
或Segmentation fault (core dumped)
。我认为这是因为我需要另一个版本的ld.so
。最有效的方法是什么,可以使二进制文件使用我所需的libc版本? 编辑:我没有二进制文件的源代码。 编辑:错误消息已编辑。没有SELinux,没有AppArmor。
LD_LIBRARY_PATH
环境变量了吗?你能重新编译那个二进制文件的源代码吗?考虑编辑你的问题以改进它。 - Basile Starynkevitchld.so
呢?许多情况下,你无法使用相同的动态加载器,这也意味着你的 libc 差异足够大(例如架构或 ABI),因此你不能在不重新编译的情况下进行替换。 - Charles DuffyLD_PRELOAD
给出了一个完全限定的路径...对吧?如果没有,请修复它并重试。 - Charles Duffy