关于 Linux 的二进制兼容性



如果我得到一些由 Ubuntu 上的 GCC 4.8 构建的C++代码,代码没有 GUI/接口,只调用标准 Linux 库,那么二进制文件可以在 RHEL 5/6 上运行吗,使用更旧的 GCC 完美吗?

通常不能。首先,它会抱怨libc太旧了。

如果你静态地与libstdc++链接,并小心避免使用较新的glibc功能,你也许可以侥幸逃脱。不过,后者并不总是可能的。与libc的静态链接不受官方支持,可能对您有用,也可能不起作用。

这个问题可能比libstdc++(你确实可以静态链接)或 GCC 本身更 Glibc。

你可以使用另一种Libc,比如MUSL libc(它应该对静态链接更友好)

此外,可能还有一些内核依赖项。

最新更新