使用gcc构建具有较旧gcc的系统

时间:2014-03-11 21:13:28

标签: c++ gcc static-linking dynamic-linking

您好我正在尝试在Ubuntu上为RedHat 6.4构建一个可执行文件 - 由于gcc版本不同,我正在努力。

RedHat 6.4机器使用gcc 4.4.7。 Ubuntu机器使用gcc 4.6.3。

以下是我的尝试:

  • 在Ubuntu机器上安装g ++ - 4.4并使用旧版本的gcc进行编译:失败,因为代码库使用了g ++中尚未提供的功能 - 4.4

  • 将Ubuntu libc.so.6和libstdc ++。so.6复制到RedHat机器上。程序开始,然后是段错误。

  • 将Ubuntu上的可执行文件静态链接到-Wl,-Bstatic作为链接选项。使用"警告在第三方库中失败:使用' dlopen'在静态链接的应用程序中,需要在运行时使用glibc版本中的共享库来链接"。

所以我现在有点困惑......有什么建议吗?

1 个答案:

答案 0 :(得分:0)

根据上面的评论,决定在另一台机器上转储RedHat(没有订阅,因此不易升级)并切换到具有最新gcc的Fedora。不是可扩展的解决方案,而是你能做什么。