我的软件可以在各种操作系统上编译,包括RHEL7。我有一个建立它在RHEL6上运行的请求。我的问题是,我的C++代码很大程度上依赖于gcc-4.4中没有的C++ 11功能,这是RHEL6中的一个。在RHEL6上编译最近的gcc:如何分发软件?
我看到有方法可以让更多最近的gcc版本在RHEL6上运行,例如Developer ToolSet。我毫不怀疑,我将能够为RHEL6构建我的软件。
但是,一旦用gcc-6编译,我需要提供哪些软件的二进制文件? gcc-6的C库? gcc-6的C++库?我应该将它们静态链接到我的二进制文件吗?最后,对于RHEL,我的软件打包到.rpm文件中,并安装在标准位置:/ usr/bin,/ usr/lib ...我将在哪里安装这些新的C和C++库文件在目标系统上? (显然不在/ usr/lib中,它们可能会干扰默认的!)
编辑:我的软件是一个共享对象,我想我可以静态链接C++库吗?但是该程序(我无法控制它)会使用我的共享对象。它可以使用其他版本的C++库吗?链接器不会找到很多重复的东西吗?看起来我打开一罐蠕虫...
编辑:是否有可能使用最新的gcc编译器与RHEL6第一版的标准C++库?
我不是专家,但我听到很多人都乐于用[泊坞窗](https://www.docker.com/)。 –