代码之家  ›  专栏  ›  技术社区  ›  Honza

将共享库重新链接到不同版本的libc

  •  2
  • Honza  · 技术社区  · 15 年前

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

    3 回复  |  直到 14 年前
        1
  •  3
  •   nos    15 年前

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

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

        2
  •  3
  •   R.. GitHub STOP HELPING ICE    14 年前

    除非您的库确实使用了已更改(不太可能)的接口,否则您可以对结果中的版本进行十六进制编辑。 .so 文件。总之,它们都是文本。

        3
  •  1
  •   user231967    15 年前

    最好的方法是为系统编译旧的glibc版本,然后用该glibc和共享库构建应用程序。虽然丑陋…