LoginSignup
0
0

More than 3 years have passed since last update.

ルート権限の無いCentOSにGCCを野良ビルドする

Posted at

はじめに

root権限の無いCentOS7.3&GCC-4.8.5の環境で色々試行するため,とりあえず新しいGCC-9.3.0を自分のhomeディレクトリ内に野良ビルドしたいと思います。

準備

GCC、GMP、MPFR、MPCを以下からそれぞれダウンロードしておきます。
- https://gcc.gnu.org/
- https://gmplib.org/
- https://www.mpfr.org/
- http://www.multiprecision.org/

今回用いたバージョンは,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が動くようになりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0