Hello WorldプログラムをEclipse PTP内のCでコンパイルしようとしましたが、mpi.h
に関連するエラーが発生しました。
パスに/usr/local/include
と/usr/local/lib
を含めて、find / -name mpi.h
で検索を実行してみました。それでもそのようなファイルやディレクトリはありませんエラーが表示されます。
mpich2
をインストールしようとしましたが、mpi.h
が見つかりませんでした。
また:
include
ディレクトリ内にフォルダーがありません。なぜですか?mpicc
は/usr/bin/mpicc
で見つかりますプロジェクトをC++コードとしてコンパイルしようとすると、同じ問題が発生します。私は何をすべきか?
yum
によると、mpi.h
ヘッダーファイルは次のパッケージによって提供されます。
$ yum whatprovides '*/mpi.h'
openmpi-devel-1.8.1-1.el6.x86_64
mpich2-devel-1.2.1-2.3.el6.x86_64
mvapich2-devel-2.0rc1-1.el6.x86_64
mvapich-devel-1.2.0-0.3563.rc1.5.el6.x86_64
mvapich2-psm-devel-2.0rc1-1.el6.x86_64
mpich-devel-3.1-4.el6.x86_64
mvapich-psm-devel-1.2.0-0.3563.rc1.5.el6.x86_64
ほとんどの出力とi686
バージョンを削除しました。処理しようとしているもの(バリアント)に応じてパッケージを選択します。 :)
これらのパッケージのほとんどは、インストール時に/usr/include
にサブディレクトリを作成することに注意してください。たとえば、mpi.h
が提供するopenmpi-devel
ファイルは/usr/include/openmpi-x86_64/mpi.h
で入手できます。つまり、openmpi-x86_64/mpi.h
をソースコードに含めるか、/usr/include/openmpi-x86_64
ディレクトリをインクルードパスに追加する必要があります。
また、これらのパッケージの一部(mvapich-devel
など)は、/usr/include
をまったく使用せず、ヘッダーを/usr/lib64/{package}/include/
の下に配置します。