如果我得到一些由 Ubuntu 上的 GCC 4.8 构建的C++代码,代码没有 GUI/接口,只调用标准 Linux 库,那么二进制文件可以在 RHEL 5/6 上运行吗,使用更旧的 GCC 完美吗?
通常不能。首先,它会抱怨libc太旧了。
如果你静态地与libstdc++链接,并小心避免使用较新的glibc功能,你也许可以侥幸逃脱。不过,后者并不总是可能的。与libc的静态链接不受官方支持,可能对您有用,也可能不起作用。
这个问题可能比libstdc++
(你确实可以静态链接)或 GCC 本身更 Glibc。
你可以使用另一种Libc,比如MUSL libc(它应该对静态链接更友好)
此外,可能还有一些内核依赖项。