0

我想用 Red Hat Enterprise Linux 5.8 编译,gcc 是 4.1.2。但是愚蠢需要 gcc >=4.6。所以我需要将 gcc 升级到 4.6,也许是 binutils 等。如果新的工具链生成诸如 *.a *.so 之类的二进制文件,在旧的 Red Hat Enterprise Linux 5.8 上运行它们会带来任何问题或不稳定吗?

4

1 回答 1

0

可能没有什么大麻烦(因为 GCC 4.1 和很快发布的 GCC 4.8 会产生兼容的代码),至少对于 C 代码是这样。

对于 C++ 代码,我认为存在不兼容性。当然,这libstdc++与编译器版本有关。有时它在实践中可能兼容,有时不兼容(但 C++ ABI 也略有变化)。而且这种不兼容性可能会蔓延到每个 C++ 库。

我相信你应该试试。如果您使用相同的最新 GCC 重新编译所有 C++ 依赖项,您可能会非常安全。所以你可以编译最新的 GCC,然后folly用它编译它的所有依赖项。

顺便说一句,我建议去最新的 GCC(今天是 4.7,几周后是 4.8)。

于 2013-01-11T06:35:29.040 回答