mpi.h的位置

时间:2015-12-09 17:49:32

标签: c++ gcc openmpi petsc

我的计算机上的代码使用的Petsc取决于mpi。在我的电脑上运行良好。我把它放在群集上,导出了gccPetscopenmpi的路径(尽管我在我的计算机上使用mpich,我希望openmpi也能正常工作)到LD_LIBRARY_PATHPATH。我还在makefile中更改了路径。 Petsc,gcc,openmpi都可以在集群上使用,所以我没有配置任何东西。当我做make时,编译器给出了错误:

fatal error: mpi.h: No such file or directory

我知道我没有提供完整的信息,但如果需要,我可以告诉更多。如何让Petsc知道mpi.h的位置?

2 个答案:

答案 0 :(得分:1)

通常,您应该使用mpicc(或mpicxx用于C ++)来编译而不是gcc(或g++用于C ++)。这些命令是围绕gccg++的简单包装器,它们只是自动添加到相应的-I/path/to/mpi/includes-L/path/to/mpi/libs中,并且应该包含在openmpi安装中。如果没有,只需在命令中添加-I/path/to/mpi/includes即可编译相应的文件。这告诉编译器在哪里查找适当的头文件。

答案 1 :(得分:-1)

回答这个问题。防止C / C ++编辑器出现错误,因为你在"特殊代码"只需使用:

#include </usr/include/mpi/mpi.h>

这似乎是一个链接 - 但这样做会关闭Netbeans编辑器中的错误,所以我可以编码而不会分心。 注意:使用Ubuntu 18.04 Desktop作为编辑机器 - 并测试运行机器 - 但我使用mpic手动编译,如前所述。

sudo mpicc c_pi.c -o c_pi

and then...
mpiexec ./c_pi

HTH