mpi.hが見つかりません

mpi.hが見つかりません

Eclipse PTPからCにHello Worldプログラムをコンパイルしようとしていますが、エラーメッセージが表示されますmpi.h

私のパスにおよび/usr/local/includeを含めて、/usr/local/libを使用して検索を実行してみましたfind / -name mpi.h。私はまだそのファイルやディレクトリはありません。間違い。

インストールしようとしましたが、mpich2まだ見つかりませんmpi.h

返品:

  • ディレクトリにフォルダがありませんinclude。なぜですか?
  • 私がmpicc見つけることができます/usr/bin/mpicc

プロジェクトをC ++コードにコンパイルしようとすると同じ問題が発生します。どうすればいいですか?

答え1

このスタックオーバーフローの質問はあなたの質問に答えることができます

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

まず、次のコマンドを使用してmpiをインストールします。

sudo apt インストール mpich

sudo apt インストール libopenmpi-dev

次に、次のコマンドを使用してライブラリがインストールされている場所を確認します。

mpicc - ショー

最後に、コード内のライブラリがインストールされている場所にライブラリを追加します。たとえば、次のようになります。

#include </usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/mpi.h>

お役に立てば幸いです。よろしくお願いします!

関連情報