gcc(GNU Compiler Collection)

 

1. はじめに

GCCとはGNU Compiler Collectionの略です。
GCCはGNUプロジェクトが開発・公開しているコンパイラです。
LinuxOSにも付属されており多くのオープンソースソフトウェアのコンパイルで使用されています。
様々な言語に対応しており標準ではC言語、C++、Object-C、Fortranなどのソースファイルのコンパイルが可能です。

 

2. 使用可能なバージョン

7.2.0 environmental modulesの配下
5.5.0 environmental modulesの配下
4.8.5 RPMパッケージ配下 

 

利用可能なノード/キュー

login.q(AMD)
epyc.c(AMD)
intel.q(Intel)
login_gpu.q(Intel+Volta)
gpu.q(Intel+Volta)
short.q(Intel)
medium.q(Intel)

 

3. (参考)外部ドキュメント

  ・GCC, the GNU Compiler Collection

  ・バージョン4.8.5マニュアル

  ・バージョン5.5.0マニュアル

  ・バージョン7.2.0マニュアル

 

4. 使用方法

デフォルトのバージョン4.8.5で使用する場合

バージョン4.8.5はenvironmental modulesの配下ではなくRPMでインストールされていますので、何も指定しない場合はバージョン4.8.5が動作します。
qlogin先で以下のコマンドでバージョン4.8.5のgccが確認できます。

$ which gcc
/usr/bin/gcc
$ gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

デフォルトのバージョン4.8.5から、5.5.0や7.2.0へ切り替えて使用する場合

例1:バージョン5.5.0を使用する場合

バージョン5.5.0を使用する場合は以下を実行します。

(1)環境(モージュールファイル)のロード

$ module load gcc5/5.5.0

(2)gccコマンドが、バージョン5.5.0で実行できることの確認

$ which gcc
/cm/shared/apps/gcc5/5.5.0/bin/gcc
$ gcc --version
gcc (GCC) 5.5.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

例2:バージョン7.2.0を使用する場合

バージョン7.2.0を使用する場合は以下を実行します。

(1)環境(モージュールファイル)のロード

$ module load gcc/7.2.0

(2)gccコマンドが、バージョン7.2.0で実行できることの確認

$ which gcc
/cm/local/apps/gcc/7.2.0/bin/gcc
$ gcc --version
gcc (GCC) 7.2.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

アンロードしたい場合

例1:バージョン5.5.0のアンロード

バージョン5.5.0のアンロードは以下のコマンドを実行します。

$ module unload gcc5/5.5.0

 

例2:バージョン7.2.0のアンロード

バージョン7.2.0のアンロードは以下のコマンドを実行します。

$ module unload gcc/7.2.0