web-dev-qa-db-ja.com

OS X Yosemiteでgccコンパイラーを使用してOpenMPプログラムをコンパイルする

$ gcc 12.c -fopenmp
12.c:9:9: fatal error: 'omp.h' file not found
#include<omp.h>
    ^
1 error generated.

OpenMPプログラムのコンパイル中に、上記のエラーが発生します。 OS X Yosemiteを使用しています。最初に端末でgccと入力してネイティブgccコンパイラをインストールしてみましたが、後でXcodeをダウンロードしても同じエラーが発生しました。次に、以下からgccをダウンロードしました。

$ brew install gcc

それでも、同じエラーが発生します。私はコンパイラのパスを変更しようとしましたが、それでも表示されます:

$ which gcc
/usr/bin/gcc

では、gccでプログラムをコンパイルするにはどうすればよいですか?

13
Tejas Belvalkar

EDIT:13 Aug 2017 現在、--without-multilibオプションはHomebrewには存在しないため、使用しないでください。標準インストール

brew install gcc

openMPプログラムのコンパイルに使用できるgccインストールを提供します。以下のように、/usr/local/binとしてgcc-<version>にインストールされます。 Homebrewから入手可能な現在のgccバージョン(執筆時点)はgcc-8としてインストールされます。以下を使用して、OpenMPサポートを使用してプログラムをコンパイルできます。

gcc-8 -fopenmp hello.c

または、.bashrcfileにエイリアスを次のように入れることもできます。

alias gcc='gcc-8'

そして次に使用してコンパイル

gcc -fopenmp hello.c

:誰かに役立つ場合に備えて、ここに元の投稿を残しています。

OS XでXCodeおよびClangを介して利用可能な標準gccは、OpenMPをサポートしていません。 OpenMPサポート付きのgccのHomebrewバージョンをインストールするには、次のコマンドでインストールする必要があります。

brew install gcc --without-multilib

または@ Mark Setchell が指摘したとおり

brew reinstall gcc --without-multilib

これにより、/usr/local/binディレクトリにインストールされます。 Homebrewはgcc-<version>としてインストールし、XCodeにバンドルされているgccを破壊しないようにします。

42
IKavanagh

私はついにいくつかの研究を行い、最終的にここで解決策に出会いました: <omp.h>ライブラリーはマーベリックスのGCCバージョン(4.2.1)には見つかりません

  1. http://hpc.sourceforge.net/ から新しいgccコンパイラを入手しました
  2. 次に、$ Sudo tar -xvf gcc-4.9-bin.tar -C /によって新しい実行可能フォルダーを配置しました
  3. 後で私はexport PATH=/usr/local/bin:$PATHに切り替えて、トリックを行ったようです!
2
Tejas Belvalkar