运行ELF文件时,共享对象文件的版本不匹配。

问题描述 投票:0回答:1

我有一个ELF文件,链接到一个库的X版本的共享对象文件。我只能访问库的Y版本的共享对象文件的版本。当我尝试运行ELF文件时,我得到的是 <ELF filename>: <shared object filename>: version X not found (required by <ELF filename>). 安装Y版本的库对我来说现在不是一个选择。有什么方法可以迫使ELF文件忽略版本不匹配并尝试运行?我可以愚弄ELF文件或以某种方式编辑共享对象文件来改变明显的版本吗?

dll version elf
1个回答
1
投票

不,"版本 "不是库的版本,而是符号的版本(ELF文件支持符号版本化,以便在改变API时保持向后的二进制兼容性,请参见《ELF文件》。本篇).

实际上它对你说的是,它缺少一个符号(函数、常量、全局等),而这个符号在你的库中是不存在的。也就是说,这个库没有它所需要的接口。

© www.soinside.com 2019 - 2024. All rights reserved.