GCC 4.8.2をビルドしてホームディレクトリにインストール

概要

あるサーバ上でC++11の機能をフルに使いたかったがGCCが古かったのでGCC 4.8.2を新たにインストールした.管理者権限が無いのでソースからコンパイルして$HOME/localにインストールした.

環境

OS Linux x86_64
元のGCC 4.3.2

手順

# Download GCC 4.8.2
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2
tar xjf gcc-4.8.2.tar.bz2
cd gcc-4.8.2

# Download GMP 5.1.3
wget https://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.bz2
tar xjf gmp-5.1.3.tar.bz2
mv gmp-5.1.3 gmp

# Download MPFR 3.1.2
wget http://www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.bz2
tar xjf mpfr-3.1.2.tar.bz2
mv mpfr-3.1.2 mpfr

# Download MPC 1.0.1
wget http://ftp.gnu.org/gnu/mpc/mpc-1.0.1.tar.gz
tar xzf mpc-1.0.1.tar.gz
mv mpc-1.0.1 mpc

# Configure & build
mkdir build
cd build
../configure --prefix=$HOME/local --enable-languages=c,c++
make
make install

gcc-4.8.2/contrib/download_prerequisitesを使えば必要なGMP,MPFR,MPCをftp://gcc.gnu.org/pub/gcc/infrastructure/からダウンロードしてくれるらしいが,残念ながら外部にFTP接続ができる環境ではなかったので別途探してダウンロードした.それぞれ別にインストールしておく必要はなく,解凍したものをgcc-4.8.2のディレクトリ内にそれぞれgmp,mpfr,mpcという名前で置いておけばいい.

なお,configureの--enable-languages=c,c++を設定しないとcannot find neither zip nor jar, cannot continueというエラーが出てmakeが失敗してしまった.参考:http://www.linuxquestions.org/questions/linux-from-scratch-13/lfs-7-3-6-17-gcc-error-cannot-find-neither-zip-nor-jar-4175458842/