CentOS 6.3 で gcc-4.7.1インストールしてみた

 
エラー: ‘const class std::type_info’ has no member named ‘hash_code’
上のコンパイルエラーを解消したいがためにgcc-4.7.1をインストールしました
 


さくらVPSのCentOS6.3に入っているgccはバージョン4.4.6。
hash_code は4.6.1以降でないと使えないらしいので
どうせアップデートするなら新しい方がいいと思い、gcc-4.7.1をインストールした次第です。
 
インストールしたパッケージ
インストール手順
ディレクトリは/rootで作業を行いました。
gccのmakeに1時間近くかかると思うので時間のあるときにやりましょう。
 
1.gmpのインストール

# wget http://ftp.gnu.org/gnu/gmp/gmp-5.0.5.tar.xz
# tar xvf gmp-5.0.5.tar.gz
# cd gmp-5.0.5
# ./configure --enable-cxx
# make
# make install
2.mpfrのインストール

# wget http://www.mpfr.org/mpfr-3.1.1/mpfr-3.1.1.tar.xz

# tar xvf mpfr-3.1.1.tar.gz
# cd mpfr-3.1.1
# ./configure 

# make
# make install
3.mpcのインストール

# wget http://www.multiprecision.org/mpc/download/mpc-1.0.tar.gz
# tar xvf mpc-1.0.tar.gz
# cd mpc-1.0
# ./configure

# make
# make install
4.pplのインストール

# wget http://bugseng.com/external/ppl/download
/ftp/releases/0.11.2/ppl-0.11.2.tar.gz

# tar xvf ppl-0.11.2.tar.gz
# cd ppl-0.11.2
# ./configure

# make
# make install
5.binutilsのインストール
# http://ftp.gnu.org/gnu/binutils/binutils-2.21.1.tar.bz2

# tar xjf binutils-2.21.1.tar.bz2
# cd binutils-2.21.1
# ./configure

# make
# make install
6.glibc-develのインストール

#  yum -y install glibc-devel-i686
 
7.gccのインストール

# wget http://ftp.gnu.org/gnu/gcc/gcc-4.7.1/gcc-4.7.1.tar.bz2
# bzip2 -dc gcc-4.7.1.tar.bz2
# cd gcc-4.7.1
# export LD_LIBRARY_PATH=/usr/local/lib
# ./configure -with-ppl-lib=/usr/local/lib -with-mpc-lib=/usr/local/lib -with-gmp-lib=/usr/local/lib

# make
# make install
これでgcc-4.7.1のインストールは完了?です。
試しにコンパイルしてみましたが下記のようなエラーが出ました。
error while loading shared libraries: libppl_c.so.4: cannot open shared object file: No such file or directory
これはライブラリのパスを環境変数に設定してあげればよいようです。
export LD_LIBRARY_PATH=/usr/local/lib
【追記】
/etc/ld.so.confに以下を追加して
/usr/lib
/usr/local/lib
/usr/local/lib64
次のコマンドを入力することで
# /sbin/ldconfig 
実行時、コンパイル時のライブラリエラーはでなくなりました。
共有ライブラリのパスを追加するようです。

ここで最初のエラーに戻りますが、C++0xは標準では無効?になっているようで、
コンパイルオプションに
-std=c++0x 
をつけることでコンパイルができるようになりました。