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