我可以用更新的gcc / clang来定位旧的linux吗? C ++

时间:2012-07-03 21:16:55

标签: c++ linux glibc

现在我使用提供的gcc在某个旧版本的linux(SLED 10)上编译我的C ++软件,它可以在大多数新版本上运行,因为它们有更新的glibc。问题是,旧的gcc不支持C ++ 11,我真的很想使用新功能。

现在我有一些想法,但我确信其他人也有同样的需求。什么对你有用?

思路:

  1. 构建一个较新的系统,静态链接到更新的glibc。 (不可能,对吗?)
  2. 构建一个较新的系统,编译并链接一个较旧的glibc。
  3. 使用更新的gcc构建旧系统,链接旧版glibc。
  4. 构建一个较新的系统,动态链接到更新的glibc,设置RPath并为我们的glibc提供安装程序。
  5. 作为奖励,我的软件还支持插件并有一个SDK。我真的更喜欢我的客户可以毫不费力地编译我的库。

    提前致谢。欢迎提出想法,首选经过验证的解决方案。

1 个答案:

答案 0 :(得分:2)

使用较新的gcc构建。在新机器上安装新编译器或在新机器上安装新编译器,并在旧机器上安装必要的动态库。

请注意,单个计算机上支持多个版本的libc(以及libstdc ++),因为它们通常是版本化的(即libc.so.5,libc.so.6等)