CentOS7 GCC-5.3インストール

投稿者: | 2016年5月25日

1.環境

$ uname -a
Linux l01 3.10.0-327.18.2.el7.x86_64 #1 SMP Thu May 12 11:03:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

2.GCCのダウンロード

GCCと依存パッケージのGMP,MPC,MPFRをダウンロードする
GCC – ftp.tsukuba.wide.ad.jp
GMP- gmplib.org
MPC – ftp.gnu.org
MPFR – www.mpfr.org

3.コンパイル&インストール

各パッケージにそれぞれ依存関係があるので、ビルドの順番は以下でなければならない。
コンパイルに結構時間かかるので(特にGCC)、コンパイルマシンのCPUコア数に応じてmake -j[並行プロセス数]を使って高速化する。
make -j$(nproc) を使ってCPUコアの自動判断もできる.

$ tar xJf gmp-6.1.0.tar.xz
$ cd gmp-6.1.0/
[gmp-6.1.0]$ ./configure
[gmp-6.1.0]$ make -j24
[gmp-6.1.0]# make install

$ tar xJf mpfr-3.1.4.tar.xz
$ cd mpfr-3.1.4/
[mpfr-3.1.4]$ ./configure --with-gmp=/usr/local/
[mpfr-3.1.4]$ make -j24
[mpfr-3.1.4]# make install

$ tar xf mpc-1.0.3.tar.gz
$ cd mpc-1.0.3
[mpc-1.0.3]$ ./configure
[mpc-1.0.3]$ make -j24
[mpc-1.0.3]# make install

$ tar xf gcc-5.3.0.tar.bz2
$ cd gcc-5.3.0
[gcc-5.3.0]$ mkdir build
[gcc-5.3.0]$ cd build
[build]$ ../configure --enable-shared --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++ --disable-multilib --disable-bootstrap --with-arch_32=x86-64 --build=x86_64-redhat-linux
[build]$ make -j24
[build]# make install

参考 GCC 5.3.0 – LFS

4.セッティング

/usr/localにインストールしたので、PATHはデフォルトで通っているのでとくに設定なしで使えるはず。

新しい方のgccでコンパイルしたプログラムを実行するとGLIBCXXのバージョンが古いというエラーが出る可能性があります。インストールしたgccのライブラリをldconfigの設定ファイルに追加して、ldconfigを実行してライブラリのデータベースを更新する必要があります。

sudo bash -c "echo '/usr/local/lib' >> /etc/ld.so.conf.d/00-local.conf"
sudo bash -c "echo '/usr/local/lib64' >> /etc/ld.so.conf.d/00-local.conf"

「00-」を付ける理由は優先度を一番高くするためです。システムのライブラリがここで追加するライブラリよりも優先度が高いと追加の意味なくなります。

ldconfigを実行する

$ sudo ldconfig -v | grep libstdc

        libstdc++.so.6 -> libstdc++.so.6.0.21  <<-- 新しい方のライブラリが追加されました
        libstdc++.so.6 -> libstdc++.so.6.0.19

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です