ld:找不到-lmpif(即使库是链接的)

时间:2015-08-15 10:30:49

标签: fortran mpi ld

我知道很多人都问了类似的问题,但我找不到适合我的答案。我正在尝试编译并最终运行一个名为zeus-mp的程序,该程序依赖于mpi库。我只是按照代码提供的说明进行操作,并编辑了make文件以反映我尝试运行它的系统。当我运行make all时,我得到以下输出。

ifort  -O2 -msse2 -I/usr/include/mpi -I/hpcwarwick/ompi/1.4.5/intel/12.1/include -o ../exe/zeusmp.x advx1.o    advx2.o advx3.o avisc.o avisc_d.o bndyflgs.o bval3d.o bvalemf.o clocks.o  ct.o dataio.o diverg.o empty.o findno.o forces.o forces_d.o fourn.o  ggen.o grdv.o hdfall.o hsmoc.o intchk.o lorentz.o lorentz_d.o maxmin.o  mnmx.o momx1.o momx2.o momx3.o movie.o msave2.o mget2.o mstart.o newdt.o  newgrid.o newvg.o newx1.o newx2.o nudt.o pdv.o pdv_d.o pressure.o printd.o restart.o setup.o spenergy.o srcstep.o strtoi.o transprt.o  tranx1.o tranx2.o tranx3.o tslice.o zeusmp.o writeout.o textdmp.o   linpck.o debug.o rad_loss.o kin_visc.o tconduct.o modulo.o pnewt.o  nantest.o  box.o bcdflt.o checkin.o mmIsFinite.o mmIsNan.o -L/usr/lib64 - L/usr/lib/mpi/lib -L/hpcwarwick/ompi/1.4.5/intel/12.1/lib - L/storage/home/maths/marxzq/HDF4/hdf4lib/lib -ldl -lnsl -lutil -lmfhdf - ldf -lmpi -lmpif -lpthread
ld: cannot find -lmpif
make: *** [../exe/zeusmp.x] Error 1

文件mpif.h位于/hpcwarwick/ompi/1.4.5/intel/12.1/include目录中,我相信我已正确链接。我甚至尝试将mpif.h移动到运行make的目录中,但同样的错误也失败了。如果有人能提供帮助,我会非常感激,提前谢谢。

1 个答案:

答案 0 :(得分:1)

复制到正确答案的评论中的最终解决方案:

您需要一个特定于您的群集的包装器,它将为您处理正确的MPI库。这些包装器通常称为mpif77mpif90等,在HPC Warwick上它似乎被称为mpifort