我可以用较新的gcc/clang将较旧的linux作为目标吗?C++; 现在我使用提供的GCC编译了某个旧版本的Linux(SLED 10)的C++软件,它可以运行在最新版本上,因为它们有一个更新的GLIMC。问题是,旧的gcc不支持C++11,我真的很想使用新特性

我可以用较新的gcc/clang将较旧的linux作为目标吗?C++; 现在我使用提供的GCC编译了某个旧版本的Linux(SLED 10)的C++软件,它可以运行在最新版本上,因为它们有一个更新的GLIMC。问题是,旧的gcc不支持C++11,我真的很想使用新特性,c++,linux,glibc,C++,Linux,Glibc,现在我有了一些想法,但我相信其他人也有同样的需要。什么对你有效 想法: 建立在更新的系统上,静态链接到更新的glibc。(不可能,对吧?) 在较新的系统上构建,针对较旧的glibc进行编译和链接 使用更新的gcc在旧系统上构建,链接到旧的glibc 在较新的系统上构建,动态链接到较新的glibc,设置RPath并为我们的glibc提供安装程序 作为奖励,我的软件还支持插件和SDK。我真的希望我的客户能够不费吹灰之力地根据我的库进行编译 提前谢谢。欢迎想法,首选经验证的解决方案。使用较新的gcc构

现在我有了一些想法,但我相信其他人也有同样的需要。什么对你有效

想法:

  • 建立在更新的系统上,静态链接到更新的glibc。(不可能,对吧?)
  • 在较新的系统上构建,针对较旧的glibc进行编译和链接
  • 使用更新的gcc在旧系统上构建,链接到旧的glibc
  • 在较新的系统上构建,动态链接到较新的glibc,设置RPath并为我们的glibc提供安装程序
  • 作为奖励,我的软件还支持插件和SDK。我真的希望我的客户能够不费吹灰之力地根据我的库进行编译


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

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


    请注意,一台计算机上支持多个版本的libc(以及libstdc++),因为它们通常都有版本控制(即libc.so.5、libc.so.6等)

    这是我的选项3吗?更新的gcc是否会链接到旧的libc,或者您是否建议我链接到新的libc并分发它?这可能更接近您的选项4。不要分发libc或libstdc++,确保目标计算机上安装了正确的版本。