GCCはパッケージ管理システム(aptやyumなど)を用いることで簡単にインストール可能です.
インストールされるGCCのバージョンはOSに依存するため,最新バージョンをインストールしたい場合,ソースからビルドし,インストールする必要があります.
ソースからインストールする方法は,管理者権限を有さないユーザでも任意のバージョンをインストールすることができるというメリットがあります.
GCCをインストールするために必要なライブラリをインストールする
GCCをソースからビルドする場合,下記ライブラリが要求されます.
- GMP
- MPFR
- MPC
GMPのインストール
まず,GNU Multiple Precision arithmetic library (GMP)をソースからインストールする手順を示します.
ここでは,2022/10/6時点での最新版(6.2.1)をインストールします.最新版はGMPの公式サイトより確認できます.
まず,m4をインストールしておく必要があります.
apt install m4
続いて,GMPのインストールを行います.
wget https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz
tar xvf gmp-6.2.1.tar.xz
cd gmp-6.2.1
mkdir build
cd build
../configure --prefix=/path/to/install/gmp/6.2.1 --enable-cxx
make
make install
インストールが成功すると,ディレクトリ構造は下記のようになっています.
/path/to/install/gmp/6.2.1/
|-- include/
| |-- gmp.h
| `-- gmpxx.h
|-- lib/
| |-- libgmp.a
| |-- libgmp.la*
| |-- libgmp.so –> libgmp.so.10.4.1*
| |-- libgmp.so.10 –> libgmp.so.10.4.1*
| |-- libgmp.so.10.4.1*
| |-- libgmpxx.a
| |-- libgmpxx.la*
| |-- libgmpxx.so –> libgmpxx.so.4.6.1*
| |-- libgmpxx.so.4 –> libgmpxx.so.4.6.1*
| |-- libgmpxx.so.4.6.1*
| `-- pkgconfig/
| |-- gmp.pc
| `-- gmpxx.pc
`-- share/
`-- info/
|-- dir
|-- gmp.info
|-- gmp.info-1
`-- gmp.info-2
MPFRのインストール
次にMPFRをインストールします.2022/10/6時点での最新版は4.1.0です.最新版はこちらから確認できます.
先ほどインストールしたGMPを指定し,下記コマンドのようにインストールします.
wget https://www.mpfr.org/mpfr-current/mpfr-4.1.0.tar.xz
tar xvf mpfr-4.1.0.tar.xz
cd mpfr-4.1.0
mkdir build
cd build
../configure --prefix=/path/to/install/mpfr/4.1.0 --with-gmp=/path/to/gmp
make
make install
インストールが成功すると,下記のようなディレクトリ構造が確認できます.
/path/to/install/mpfr/4.1.0/
|-- include/
| |-- mpf2mpfr.h
| `-- mpfr.h
|-- lib/
| |-- libmpfr.a
| |-- libmpfr.la*
| |-- libmpfr.so –> libmpfr.so.6.1.0*
| |-- libmpfr.so.6 –> libmpfr.so.6.1.0*
| |-- libmpfr.so.6.1.0*
| `-- pkgconfig/
| `-- mpfr.pc
`-- share/
|-- doc/
| `-- mpfr/
| |-- AUTHORS
| |-- BUGS
| |-- COPYING
| |-- COPYING.LESSER
| |-- examples/
| | |-- can_round.c
| | |-- divworst.c
| | |-- ReadMe
| | |-- rndo-add.c
| | |-- sample.c
| | |-- threads.c
| | `-- version.c
| |-- FAQ.html
| |-- NEWS
| `-- TODO
`-- info/
|-- dir
`-- mpfr.info
MPCのインストール
最後にMPFRをインストールします.2022/10/6時点での最新版は1.2.1です.最新版はこちらから確認できます.
上記でインストールしたGMPおよびMPFRを持ちいて,下記コマンドのようにインストールします.
wget https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz
tar xvf mpc-1.2.1.tar.gz
cd mpc-1.2.1
mkdir build
cd build
../configure --prefix=/path/to/install/mpc/1.2.1 --with-gmp=/path/to/gmp --with-mpfr=/path/to/mpfr
make
make install
インストールが成功すると,下記のようなディレクトリ構造が確認できます.
/path/to/install/mpc/1.2.1/
|-- include/
| `-- mpc.h
|-- lib/
| |-- libmpc.a
| |-- libmpc.la*
| |-- libmpc.so –> libmpc.so.3.2.1*
| |-- libmpc.so.3 –> libmpc.so.3.2.1*
| `-- libmpc.so.3.2.1*
`-- share/
`-- info/
|-- dir
`-- mpc.info
GCCのインストール
上記で,GMP,MPFR,MPCをインストールが完了したので,いよいよGCCをインストールします.
ここではgcc, g++, gfortranをインストールします.
12.2.0のインストール
wget https://ftp.jaist.ac.jp/pub/GNU/gcc/gcc-12.2.0/gcc-12.2.0.tar.gz
tar xvf gcc-12.2.0.tar.gz
cd gcc-12.2.0
mkdir build
cd build
unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE
../configure --prefix=/path/to/install/gcc/12.2.0 --enable-languages=c,c++,fortran --disable-multilib --disable-bootstrap --with-gmp=/path/to/gmp --with-mpfr=/path/to/mpfr --with-mpc=/path/to/mpc
make
make install
付録
Environment Modulues用の設定ファイル
#%Module1.0
conflict gcc
set module_root /path/to/gcc/12.2.0
set ver 12.2.0
setenv GCC_ROOT ${module_root}
setenv CC gcc
setenv CXX g++
setenv FC gfortran
prepend-path PATH ${module_root}/bin
prepend-path LD_LIBRARY_PATH ${module_root}/lib
prepend-path LD_LIBRARY_PATH ${module_root}/lib64
prepend-path LIBRARY_PATH ${module_root}/lib
prepend-path LIBRARY_PATH ${module_root}/lib64
prepend-path CPATH ${module_root}/include
prepend-path MANPATH ${module_root}/share/man
set module_description "GNU Compiler Collection ${ver}"
module-whatis $module_description
proc ModulesHelp { } {
global set module_description
puts stderr "
$module_description
"
}