質問: ### 発生している問題 お世話になります。 openMPを用いたC++のコードを動かしたいのですが、makeを通そうとすると g++ -std=c++11 -c main.cpp -O3 -I/usr/local/include -fopenmp clang: error: unsupported option '-fopenmp' make: *** [main.o] Error 1 というエラーが出力され、makeが通りません。 コンパイルにclangが使われているのが原因であるとわかるのですが、どうしたらgccやg++でコンパイルされるようにできるのでしょうか? ### 詳細 ホームディレクトリで ``` gcc --version ``` を実行すると、 Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 8.0.0 (clang-800.0.42.1) Target: x86_64-apple-darwin16.0.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin と出力されます。また、homebrewを用いて ``` brew tap homebrew/versions brew install gcc49 ``` を実行してみましたが、 ``` sudo ln -sf /usr/local/bin/gcc-4.9 /usr/bin/gcc ``` の実行が許可されず、homebrewでインストールされたgcc-4.9を使ってもらえないようです。 なにぶんgccのことがよくわかっていないため、どうして良いかわかりません。 よろしくお願いいたします。
回答: homebrewでgcc49をインストールしたのなら、/usr/local/bin/g++-4.9にリンクができているはずです。自分でリンクを作る必要はないです。また、homebrewをインストールしたときにPATHに/usr/local/binが含まれているのではないかと思います。 Makefileなどで「g++」となっている箇所を「g++-4.9」か「/usr/local/bin/g++-4.9」に変更すれば、OpenMP対応ずみのGCCを使うようになります。 * Makefileの中で`CC`や`CXX`といった変数を使っているのなら、satorenさんのご回答の方法で変更できます。 * なお、最初にconfigureスクリプトを実行するタイプのパッケージなら、「`./configure (オプション) CXX=g++-4.9`」のようにして変更します (詳しくは`./configure --help`を実行して、表示されるものの最後の方を見て下さい)。