web-dev-qa-db-ja.com

mpi.hが見つかりません

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++コードとしてコンパイルしようとすると、同じ問題が発生します。私は何をすべきか?

3
Dalia Shouman

このスタックオーバーフローの質問はあなたの答えです

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/の下に配置します。

2
John WH Smith