升级前准备工作:
因gcc依赖mpc、gmp、mpfr三个包,因此需要先下载依赖包进行升级(可以选择不同的依赖包版本)
mpc: wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
gmp: wget ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.0.tar.gz
mpfr: wget ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.0.0.tar.gz
gcc: wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2
编译安装 mpc
|
|
编译安装 mpfr
|
|
编译安装 gmp
|
|
编译安装 gcc
下载编译所需的依赖项
|
|
建立编译输出目录
|
|
生成makefile文件
|
|
gcc 编译参数说明:
–enable-languages //指定 gcc 能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,Java。
–disable-multilib //默认 gcc 能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。
执行编译
|
|
注:如果机器是单核就直接make && make install ,参数-j4是利用多核编译,便以速度要快很多。
gcc编译常见错误:
错误一:“—make[5]: * [s-attrtab] Killed” 是因为内存不足,可以分配交换空间来支持,具体操作如下:
|
|
(bs=32k指定每个扇区占用32kb,读入了32768个区段,输出了32768个区段,bs参数的目的在于指定每次读取及输入多少个bytes;由于磁盘存取的最小单位为扇区,因此设置bs也等于设置每个扇区的大小;而count的目的则在指定可以使用多少个扇区.因此,可以使用的硬盘空间就等于bscount.以上范例为例,可以使用的硬盘空间等于3232768=1048576(KB),亦等于1G)
格式化swap文件执行mkswap命令,将myswap文件格式化成s文件系统,系统才能使用,切换到/tmp目录,并执行以下命令:
启动swap分区
如果需要停止则执行 swapoff /tmp/myswap
检查swap分区
错误二: “make[2]: *** [configure-stage1-libcpp]Error 1 ”是因为缺少gcc-c++
执行如下命令:
设置GLIBC
|
|
删除原软链
拷贝GCC编译的新版本libstdc
创建软链
(The End)