mpi.h 的位置
Location of mpi.h
我的计算机上有一个代码使用 Petsc
,它依赖于 mpi
。在我的电脑上运行良好。我把它放在集群上,导出 gcc
、Petsc
和 openmpi
的路径(虽然我在我的计算机上使用 mpich
我希望 openmpi
也能工作)到 LD_LIBRARY_PATH
和 PATH
。我还更改了 makefile 中的路径。 Petsc、gcc、openmpi 在集群上都可用,所以我没有配置任何东西。当我做 make
时,编译器给出了错误:
fatal error: mpi.h: No such file or directory
我知道我没有提供完整的信息,但如果需要我可以提供更多信息。我怎样才能让 Petsc
知道 mpi.h
在哪里?
通常,您应该使用 mpicc
(或 C++ 的 mpicxx
)来编译,而不是 gcc
(或 C++ 的 g++
)。这些命令是 gcc
和 g++
的简单包装器,它们只是自动添加适当的 -I/path/to/mpi/includes
和 -L/path/to/mpi/libs
,并且应该包含在您的 openmpi
安装中。如果没有,只需在命令中添加 -I/path/to/mpi/includes
即可编译相应的文件。这告诉编译器在哪里寻找合适的头文件。
回答问题。要防止 C/C++ 编辑器在您输入 "special code" 时显示错误,只需使用:
#include </usr/include/mpi/mpi.h>
这似乎是一个 link -- 但这样做会关闭 Netbeans 编辑器中的错误,这样我就可以不受干扰地编写代码了。
注意:使用 Ubuntu 18.04 桌面作为编辑机——并测试 运行 机——但我使用 mpic 手动编译,如前所述。
sudo mpicc c_pi.c -o c_pi
and then...
mpiexec ./c_pi
hth
我的计算机上有一个代码使用 Petsc
,它依赖于 mpi
。在我的电脑上运行良好。我把它放在集群上,导出 gcc
、Petsc
和 openmpi
的路径(虽然我在我的计算机上使用 mpich
我希望 openmpi
也能工作)到 LD_LIBRARY_PATH
和 PATH
。我还更改了 makefile 中的路径。 Petsc、gcc、openmpi 在集群上都可用,所以我没有配置任何东西。当我做 make
时,编译器给出了错误:
fatal error: mpi.h: No such file or directory
我知道我没有提供完整的信息,但如果需要我可以提供更多信息。我怎样才能让 Petsc
知道 mpi.h
在哪里?
通常,您应该使用 mpicc
(或 C++ 的 mpicxx
)来编译,而不是 gcc
(或 C++ 的 g++
)。这些命令是 gcc
和 g++
的简单包装器,它们只是自动添加适当的 -I/path/to/mpi/includes
和 -L/path/to/mpi/libs
,并且应该包含在您的 openmpi
安装中。如果没有,只需在命令中添加 -I/path/to/mpi/includes
即可编译相应的文件。这告诉编译器在哪里寻找合适的头文件。
回答问题。要防止 C/C++ 编辑器在您输入 "special code" 时显示错误,只需使用:
#include </usr/include/mpi/mpi.h>
这似乎是一个 link -- 但这样做会关闭 Netbeans 编辑器中的错误,这样我就可以不受干扰地编写代码了。 注意:使用 Ubuntu 18.04 桌面作为编辑机——并测试 运行 机——但我使用 mpic 手动编译,如前所述。
sudo mpicc c_pi.c -o c_pi
and then...
mpiexec ./c_pi
hth