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>
お役に立てば幸いです。よろしくお願いします!