我已经完成了源包的编译并安装在自定义路径中,创建了二进制文件和一些共享对象库,并且该工具正在运行。
相同的安装可以在另一个 RHEL 版本中使用(至少,理论上这些库可以在另一个 RHEL 版本中使用吗?)
我所需要的只是至少图书馆应该可以工作。
一点解释会更有帮助。
答案1
同意评论者的意见@siblenx,表明glibc提供了一系列的兼容性。它执行此操作的方式(在版本 6 的发行范围内)是使用符号版本控制:引入每个符号(函数或数据)时,都会有一个相应的符号版本控制。版本附加到符号上,以便可以自动链接到正确的版本。
如果行为(主要是二进制界面)以后发生了变化,您的应用程序将使用旧版本的界面加载。向后看,该版本可能不存在,并且应用程序无法成功加载。
在更粗略的层面上,RHEL 上的大多数共享库也都有版本控制,但 glibc 通过单个共享库中的符号版本来支持兼容性范围。
进一步阅读:
- ELF 符号版本控制(乌尔里希·德雷珀饰演)
- 具有版本化接口的 GNU C 库
- 链接到旧的 GLIBC 符号
- 如何链接到特定的 glibc 版本?