5

我正在使用 CentOS 6 机器,它有非常旧的 GCC/GlibC 版本。我想用最新或至少最近的版本构建整个 glibc、binutils、gcc 工具链,以便在最新的 gcc 中使用 c++11 支持,在最近的 binutils 中使用 ld.gold,并可能在最近的 glibc 中进行改进。

我想将整个工具链放在某个单独的目录中,而不是影响任何现有的系统文件。我还想用 --sys-root 构建 gcc,这样在使用 gcc 时,我不需要指定 -I/some/directory/include 和 -L/some/directory/lib 或任何其他参数。此外,生成的可执行文件将自动使用新的 ld-linux-xxxxx 程序加载器,它会自动找到新的 libc.so。

任何人都知道是否有关于此任务的教程?

4

4 回答 4

0

编译器非常依赖 glibc,尽管您设法在 chrooted 系统或等效系统中构建编译器,但您还需要构建您将使用这个新编译器构建的程序所需的所有库。您能做的最好的事情是使用全新的系统(vm 或其他)或升级您现有的系统

于 2013-02-08T12:50:26.167 回答
0

您可以从 Openembedded 或 Yocto 下载最新的工具链。在这里,您不必对当前系统进行任何软件包安装。只需下载工具链,获取环境,就可以检查 c++11 支持了。下载工具链的位置:http: //downloads.yoctoproject.org/releases/yocto/yocto-1.7/toolchain/(根据您的机器支持选择32位或64位的架构)

于 2015-08-24T05:45:33.573 回答
-1

如果你需要最新的工具链,你最好迁移到 Fedora。

如果你不能/不愿意,最好的办法是将这些片段作为 CentOS 和 Fedora 的源 RPM,解压缩它们并通过从 Fedora 窃取源代码和补丁来修复 CentOS,注意它不会推翻系统包,正确的版本和修复安装在别处(不要把你的系统搞得太乱!/usr/local想到了)。这些部分至少是binutils,gcc。

于 2013-02-08T01:20:48.183 回答
-1

我不知道你为什么需要这个?如果需要为另一台计算机编译,我建议使用运行与目标相同的操作系统的虚拟机。更容易!

于 2013-02-08T08:20:20.760 回答