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