尝试安装gcc-4.8.1时,使用"错误2"退出

Mat*_*ttG 9 gcc makefile amazon-ec2 ec2-ami gcc4.8

我正在尝试在AWS ec2"其他Linux"发行版上安装gcc-4.8.1.我下载了gcc-4.6.2.tar.gz,然后按照http://gcc.gnu.org/wiki/InstallingGCC(针对4.8.1而不是4.6.2修改)的"配置"标题下的这些说明进行操作:

tar xzf gcc-4.8.1.tar.gz
cd gcc-4.8.1
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.8.1/configure --prefix=$HOME/gcc-4.8.1 
make
make install
Run Code Online (Sandbox Code Playgroud)

当我运行'make'时,程序运行一段时间但最终退出时出现此错误:

build/genattrtab /home/ec2-user/gcc-4.8.1_install/objdir/../gcc-4.8.1/gcc/config/i386/i386.md insn-conditions.md \
                -Atmp-attrtab.c -Dtmp-dfatab.c -Ltmp-latencytab.c
make[3]: *** [s-attrtab] Killed
make[3]: Leaving directory `/home/ec2-user/gcc-4.8.1_install/objdir/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/home/ec2-user/gcc-4.8.1_install/objdir'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/ec2-user/gcc-4.8.1_install/objdir'
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

任何人都可以了解为什么会发生这种情况吗?我根本不理解错误信息.我用gcc4.6.1构建它,而/home/ec2-user/gcc-4.8.1_install是我从内部运行命令的目录.

Mat*_*ttG 21

我做错了一些事.首先,我没有安装最新的binutils.

然而,这个特殊的错误是工作中的OOM杀手.安装期间使用的峰值RAM大于EC2微实例的峰值RAM.使用更大的实例或使用swap:

SWAP=/tmp/swap
dd if=/dev/zero of=$SWAP bs=1M count=500
mkswap $SWAP
sudo swapon $SWAP
Run Code Online (Sandbox Code Playgroud)

这将交换500 MB,这对我的安装来说足够了.

  • 好方案!在DigitalOcean实例上解决了我的问题. (3认同)