使用古董 glibc 编译现代 GCC 时遇到问题

vy3*_*y32 5 centos gcc centos6.4

我正在尝试让现代 GCC 在 Centos 6.4 上编译。问题是 Centos 没有现代 glibc 和 GCC 4.8.x 和 4.7.x 不断给我以下编译错误:

... -DL_gcov -c ../../.././libgcc/libgcov.c
In file included from /usr/include/features.h:385:0,
                 from /usr/include/stdio.h:28,
                 from ../../.././libgcc/../gcc/tsystem.h:88,
                 from ../../.././libgcc/libgcov.c:29:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这里的问题是gnu/stubs-32.h现代的一部分,glibc而 Centos 6.4 似乎没有它。我已经尝试构建自己的,glibc但是一旦它被安装并且在我的本地LD_LIBRARY_PATH我就不能运行任何其他程序,因为系统上所有现有的可执行文件都试图链接它并且它们失败了。

我想使用新的编译器,因为它可以更好地处理 C++ STL 代码,并且因为 GCC 4.8 中的优化器使我的代码运行时间是 Centos 附带的 GCC 4.4.7 编译器的 1/2。

关于如何做到这一点的任何建议?

小智 2

在 Centos 上构建 gcc 编译器并且仅针对 64 位。
\n摘自文档摘录:

\n\n
\n

C 标准库和头文件\n 为了构建 GCC,将为其构建目标库的所有目标变体(而不仅仅是主机 C++ 编译器的变体)都必须存在 C 标准库和头文件。\n 这会影响流行的 \xe2\x80\x98x86_64-unknown-linux-gnu\xe2\x80\x99 平台(以及其他多库目标),其中 64 位(\xe2\x80\x98x86_64\xe2\x80\x99)和 32 位bit (\xe2\x80\x98i386\xe2\x80\x99) libc 头文件通常单独打包。如果您在 \xe2\x80\x98x86_64-unknown-linux-gnu\xe2\x80\x99 上构建本机编译器,请确保正确安装了 32 位 libc 开发人员包(包的确切名称)取决于您的发行版)或者您必须通过使用选项 --disable-multilib 进行配置来将 GCC 构建为仅限 64 位的编译器。否则,可能会遇到\xe2\x80\x98fatal error: gnu/stubs-32.h: No such file\xe2\x80\x99之类的错误

\n
\n