9

我正在尝试在 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 是我从内部运行命令的目录。

4

2 回答 2

21

我做错了几件事。首先,我没有安装最新的 binutils。

然而,这个特殊的错误是工作中的 OOM 杀手。安装过程中使用的峰值 RAM 大于 EC2 微实例。使用更大的实例或使用交换:

SWAP=/tmp/swap
dd if=/dev/zero of=$SWAP bs=1M count=500
mkswap $SWAP
sudo swapon $SWAP

这将交换 500 MB,这对于我的安装来说已经足够了。

于 2013-09-27T16:49:48.367 回答
0

可能你忘了安装gcc-c++,用命令试试yum -y install gcc-c++

于 2021-10-07T09:36:52.013 回答