我发现如果我在 Ubuntu 10.10 上构建任何二进制文件,那么它不会在一些较旧的 Linux 上执行。这是因为 Ubuntu 使用了一个非常新的 C 库,称为 EGLIBC。大多数桌面 Linux 系统都使用 GLIBC。
我想知道是否有任何标准方法可以重新分发在现代 Ubuntu 上构建的二进制程序,以便它们可以在任何较旧的 Linux 系统上执行?
如何找到所有必需的依赖项(glibc 版本、动态库)?
我发现如果我在 Ubuntu 10.10 上构建任何二进制文件,那么它不会在一些较旧的 Linux 上执行。这是因为 Ubuntu 使用了一个非常新的 C 库,称为 EGLIBC。大多数桌面 Linux 系统都使用 GLIBC。
我想知道是否有任何标准方法可以重新分发在现代 Ubuntu 上构建的二进制程序,以便它们可以在任何较旧的 Linux 系统上执行?
如何找到所有必需的依赖项(glibc 版本、动态库)?
如果你坚持这样做,那么你就不能使用任何共享库;您必须与-static 链接。
要找出它从源链接到的内容,请查看 -lfoo 开关的链接器命令。要检查二进制文件,请在其上运行 ldd。