我有Ubuntu 16.10。如何编译C ++程序,以便二进制文件可以在Ubuntu 14.04或类似年龄的任何其他Linux发行版上正常工作? (我只对x86-64感兴趣。)
这可以通过16.10(gcc 6.2)上的默认编译器实现,还是需要安装和使用相同的编译器14.04(gcc 4.8)?如果我需要旧的编译器,我是否需要-multilib
包?
我对兼容所需内容的一般(不依赖于发行版)解释以及如何在我的Ubuntu版本上进行更具体的提示感兴趣。
答案 0 :(得分:0)
丑陋的解决方案是静态链接所有内容(包括c ++运行时),以生成不依赖于系统库的巨大单片可执行文件(例如,他们如何使用go语言)。另一个丑陋的解决方案是设置一些CI并在所有支持的系统上构建所有内容。然而,这很可能意味着用最早的支持系统编写所有内容并且难以解决兼容性问题。