环境:阿里云最低配机器,512M内存,1核,CentOS6.5 32位
准备工作:由于阿里云的CentOS默认是不开启swap的,所以需要先开启swap才行,因为gcc 5.1.0编译时非常吃内存,512M内存是万万打不住的,我在这个环节上折腾了两天,最后才找到了原因
首先,创建用于交换分区的文件(2GB):dd if=/dev/zero of=/mnt/swap bs=1M count=2048
其次,设置交换分区文件:mkswap /mnt/swap
接着,立即启用交换分区文件:swapon /mnt/swap
再者,如果在vi /etc/rc.local中有swapoff -a,需要修改为swapon -a,没有就加上
设置开机时自启用swap分区:vi /etc/fstab,添加 /mnt/swap swap swap defaults 0 0
最关键的一步:vi /etc/sysctl.conf,设置 vm.swappiness = 60 (阿里云这里默认是 0)
最后,可以free -m,看看有没有swap显示
到这里我们就可以开始编译gcc-5.1.0了:
首先下载源码:wget http://gcc.skazkaforyou.com/releases/gcc-5.1.0/gcc-5.1.0.tar.gz
下载完成后解压源代码:tar xvfz gcc-5.1.0.tar.gz
切换进目录:cd gcc-5.1.0
下载依赖库:./contrib/download_prerequisites
建立编译目录并切换进去:mkdir gcc-build-5.1.0;cd gcc-build-5.1.0
配置编译命令:../configure –enable-checking=release –enable-languages=c,c++ –disable-multilib(–enable-languages表示你要让你的gcc支持那些语言,–disable-multilib不生成编译为其他平台可执行代码的交叉编译器。–disable-checking生成的编译器在编译过程中不做额外检查,也可以使用–enable-checking=xxx来增加一些检查;)
编译:make (很久)
安装:make install