1、yum install glibc-static libstdc++-static -y安装c和c++的静态库(据说如果系统中缺少libc.a和libstdc++.a编译时会出错,但是我没有那么多闲情逸致去试,实践过的朋友可以回复一下,分享一下经验,让大家都长长见识)
2、下载解压gcc,我的gcc目录是gcc-4.8.0
3、进入gcc目录,执行:./contrib/download_prerequisites这个神奇的脚本文件会帮我们下载、配置、安装那三个依赖的库。可以节约我们大量的时间和精力。
4、你以为这三个库自动下载了、自动ma氯短赤亻ke install了就没事了吗?错!很多人在编译gcc的时候出现各种奇奇怪怪的错误就是这步没有做好。它们还不在.so文件的搜索路径里面,需要加进去,最后切记切记一定要执行一下ldconfig。大致做法为:1,找到你的共享库文件被install到哪个目录了(updatedb+locate命令)。2,如果你的库不是直接放在/lib或/usr/lib下,需要修改/etc/ld.so.conf文件,加入你的共享库的路径3,如果在2中添加了共享库路径,切记要执行一下ldconfig,更新响应cache文件让系统能找到你的共享库。
5、建立临时目录,这个目录用以存放编译时的大量临时文件,是文档要求中必须的。我是在gcc-4.8.0下建立了一个名为gcc-build-4.8.0的目录,进入它。mkdir gcc-build-4.8.0cd gcc-build-4.8.0配置gcc编译选项
6、强烈建议阅读INSTALL目录下的说明文档,尤其是configure.html,以确定你的编译选项。比较基本的选项有--enabl髫潋啜缅e-languages,说明你要让你的gcc支持那些语言,--disable-multilib不生成编译为其他平台可执行代码的交叉编译器。--disable-checking生成的编译器在编译过程中不做额外检查,也可以使用--enable-checking=xxx来增加一些检查。网上还说了什么--with-gmp、--with-mpfr、--with-mpc这三个选项,但是如果你3,4步做好了,就不要配了,反之你还是老实点吧别抱侥幸心理了。调用gcc-4.8.0目录下的configure文件:例如:../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
7、执行../make #不解释执行编译命令(#在8核的虚拟机上进行编译,每个核分配2个编译任务)make -j16 make install编译过程CPU 核基本100%占用,整个编译用时11分50秒。检查gcc版本#你就等吧少年,建议晚上睡觉前做当然上面三步一定要在前一步顺利结束的情况下进行,如果哪一步出错了,结果都显示error了,就不要再做后面的了。在shell的输出里搜索"error"看具体的出错点是什么,baidu、google一下为什么。如果你求稳的话,可以在make install之前先make check一下。