在Ubuntu上为mpi.h设置g++或ICC



我从来没有在VS08之外做过任何主要的编程。

我正试图用两个相关的make文件中的任何一个来编译一个名为LAMMPS的程序。一个调用g++,另一个调用icc (Intel的编译器)。

icc产生如下错误:

icc -O -DLAMMPS_GZIP -DMPICH_SKIP_MPICXX -DFFT_FFTW -M write_restart.cpp> write_restart.dWrite_restart.cpp(15):灾难性错误:无法打开mpi.h文件# include"mpi.h"

和g++抛出这个错误

g++ -g -O -DLAMMPS_GZIP -DMPICH_SKIP_MPICXX -DFFT_FFTW -M verlet.cpp> verlet.dmpi.h:没有这样的文件或目录编译终止。

mpi.h文件位于/usr/lib/openmpi/include

这是我的理解,我需要设置$PATH变量,读取

bash:/usr/local/sbin:/usr/地方/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/opt/英特尔/bin:/usr/lib/openmpi包括:

和当前读取

的$LD_LIBRARY_PATH

/usr/lib/openmpi/lib:

那么,如何包含mpi.h文件呢?那么icc或g++找到它吗?

MPI .h是MPI库的头文件。如果您在makefile中使用mp++ MPI编译器包装器而不是g++,则会包含此功能。mp++将调用适当的编译器。根据你的描述你已经在你的ubuntu机器上安装了openmpi包。

要了解更多信息,请查阅手册,例如

http://lammps.sandia.gov/doc/Section_start.html#2_2 (for LAMMPS)

,也许您需要查看openmpi手册,了解如何设置额外的编译器。不确定在openmpi本身构建之后是否可以做到这一点。默认情况下,我认为Ubuntu的openmpi编译器包装器只会调用g++。CMIIW .

好了,所以当将cc设置为"mpic++ "时,我让它与g++一起工作。Mpich2 "代替" mppic++ "

您可以尝试使用openmpi编译/src/make文件使openmpi

在我的例子中,这个选项是成功的

相关内容

  • 没有找到相关文章

最新更新