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