2

我有一个使用特定版本的 libc (GLIBC2.4) 编译的 linux 共享库 (.so),我需要在具有不同版本的 libc 的系统上使用它。我没有相关库的源代码,因此无法为新系统重新编译。是否有可能将该库中的依赖项更改为不同的 libc?

4

3 回答 3

3

如果您在具有较旧 glibc 的系统上需要 .so,则需要源代码并使用较旧的 glibc 重新编译/重新链接它。另一种方法是在旧系统上的非默认位置安装所需的 glibc,并为需要此 .so 的可执行文件调整 LD_LIBRARY_PATH

如果有一个更新的 glibc,它通常不应该是一个问题,因为 glibc 往往是向后兼容的。

于 2010-01-15T14:35:06.980 回答
3

除非您的库确实使用了更改的接口(不太可能),否则您可以在生成的.so文件中对版本的引用进行十六进制编辑。反正都是文字。

于 2010-12-10T01:12:58.170 回答
1

你能做的最好的就是为你的系统编译旧的 glibc 版本,然后用那个 glibc 和你的共享库构建你的应用程序。虽然丑...

于 2010-01-15T14:21:50.250 回答