未找到 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

这个 Stack Overflow 问题可以回答你的问题

根据yummpi.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 install libopenmpi-dev

接下来,使用以下命令检查库的安装位置:

mpicc-show

最后,将库添加到代码中安装的位置,例如:

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

希望这对您有帮助,提前致谢!

相关内容