我尝试在 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 install libopenmpi-dev
接下来,使用以下命令检查库的安装位置:
mpicc-show
最后,将库添加到代码中安装的位置,例如:
#include </usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/mpi.h>
希望这对您有帮助,提前致谢!