我试图在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
当我运行' 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
任何人都可以了解为什么会发生这种情况吗?我根本不理解错误信息。我用gcc4.6.1和/home/ec2-user/gcc-4.8.1_install构建它是我从内部运行命令的目录。
答案 0 :(得分: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
这将交换500 MB,这对我的安装来说足够了。