gcc

あらかじめ入っている gcc

パスが通っている gcc を探す。

$ which -a gcc
/usr/bin/gcc

探した gcc のバージョンを確認する。

$ gcc --version
version に clang とあればあらかじめ入っている mac の gcc です。 g++ や c++ も同様に確認できます。

clang の c++ では OpenMP がサポートされていません。
omp.h を include したソースファイル(openmp.cppとする)を /usr/bin/c++ でコンパイルするとエラーが出ます。

$ /usr/bin/c++ -fopenmp openmp.cpp
clang: error: unsupported option '-fopenmp'

homebrew で gcc をインストール

Homebrew で gcc をインストールすると、 インストールされたコンパイラは OpenMP をサポートしています。 Homebrewが入っていれば コマンド一つでインストールできます。

$ brew install gcc
インストールのタイミングに依存すると思いますが、今回入ったのは gcc-12 でした。

確認

$ which -a gcc-12
/usr/local/bin/gcc-12
$ gcc-12 --version
Homebrew GCC という文字列が見られます。 なお、/usr/local/bin/g++-12 と /usr/local/bin/c++-12 もインストールされています。

c++-12 を使うと openmp.cpp はちゃんとコンパイルされます。

$ c++-12 -fopenmp openmp.cpp

[オプション] gcc-12 を gcc で呼び出す

このままでは gcc-12 を使うためにgcc-12 とタイプしなければなりません。 そこで gcc とタイプして gcc-12 が呼び出されるようにします。 ただし Update などでバージョンが変わる度に変更が必要です。
Last modified: Tue Jan 24 15:46:52 JST 2012