1. ホーム
  2. c++

[解決済み] fatal error: mpi.h: No such file or directory #include <mpi.h>.

2022-02-11 14:11:18

質問

だけでコンパイルした場合

#include <mpi.h>

そのようなファイルやディレクトリはありませんと表示されます。 しかし、mpi.h へのパスを

#include "/usr/include/mpi/mpi.h"

(パスが正しい)と返されます。

In file included from /usr/include/mpi/mpi.h:2087:0,
                 from lbm.cc:7:
/usr/include/mpi/openmpi/ompi/mpi/cxx/mpicxx.h:35:17: fatal error: mpi.h: No such file or directory
 #include "mpi.h"
                 ^
compilation terminated.

どなたか修正方法をご存じですか?

どのように解決するのですか?

MPIコンパイラのラッパーを使用していないことが原因である可能性が高いです。MPIプログラムをコンパイルするときは、常にMPIラッパーを使うべきです。

  • C - mpicc
  • C++ - mpiCC , mpicxx , mpic++
  • FORTRAN mpifort , mpif77 , mpif90

これらのラッパーは、プログラムをコンパイルする際に、適切なコンパイラフラグ、ライブラリ、インクルードディレクトリ、ライブラリディレクトリなどがすべて含まれるように、あなたに代わって汚れ仕事をすべて行ってくれます。