はじめに
root権限の無いCentOS7.3&GCC-4.8.5の環境で色々試行するため,とりあえず新しいGCC-9.3.0を自分のhomeディレクトリ内に野良ビルドしたいと思います。
準備
GCC、GMP、MPFR、MPCを以下からそれぞれダウンロードしておきます。
今回用いたバージョンは,gcc-9.3.0,gmp-6.1.2,mpfr-4.1.0,mpc-1.1.0です。現時点でgmp-6.2.0が最新版の様ですが,エラーが生じ~~て面倒なので,~~たため1つ前のバージョンを用いました。古いGCCだとgmp-6.2.0でエラーが生じるようです。
ビルドとインストール
共有で使用している環境なので,できるだけ自身のhome内で完結できる様にするため,とりあえずtoolsというディレクトリを作り,その中にインストールしていきたいと思います。
最初に,ダウンロードしたgccを解凍し,gcc_workという作業用ディレクトリに名前を変更します。
次に,gcc_work内にgmp,mpfr,mpcというディレクトリ名で,それぞれ解凍したものを保存しておきます。
gcc_work内にbuildディレクトリを作成&移動し,configure,make,make installを行います。
tar Jxfv gcc-9.3.0.tar.xz
mv gcc-9.3.0 gcc_work
tar xfv gmp-6.1.2.tar.bz2
mv gmp-6.1.2 ~/tools/gcc_work/gmp
tar Jxfv mpfr-4.1.0.tar.xz
mv mpfr-4.1.0 ~/tools/gcc_work/mpfr
tar xzf mpc-1.1.0.tar.gz
mv mpc-1.1.0 ~/tools/gcc_work/mpc
cd gcc_work
mkdir build
cd build
../configure --prefix=$HOME/tools/gcc-9.3.0 --enable-languages=c,c++,fortran --disable-multilib
make -j 12
make install
今回は,C,C++,Fortranを使用するので,configureのオプションは上記のようにしました。元のGCCと使い分けのため,インストール完了後に$HOME/binを作成し,後ろに93を付けてシンボリックリンクを作成します。
cd ~/bin/
ln -s ~/tools/gcc-9.3.0/bin/gcc gcc93
ln -s ~/tools/gcc-9.3.0/bin/g++ g++93
ln -s ~/tools/gcc-9.3.0/bin/gfortran gfortran93
また,以下を.bash_profileへ追記しました。
export PATH=$PATH:$HOME/.local/bin:$HOME/bin
export LD_LIBRARY_PATH=$HOME/tools/gcc-9.3.0/lib64:$LD_LIBRARY_PATH
以上で,取りあえずGCC-9.3.0が動くようになりました。