I am trying to locally compile software which uses openmpi (1.6.3), but I got this error:
restraint_camshift2.o:(.toc+0x98): undefined reference to `ompi_mpi_cxx_op_intercept'
restraint_camshift2.o: In function `Intracomm':
/home/users/didymos/openmpi-1.6.3/include/openmpi/ompi/mpi/cxx/intracomm.h:25: undefined reference to `MPI::Comm::Comm()'
/home/users/didymos/openmpi-1.6.3/include/openmpi/ompi/mpi/cxx/intracomm.h:25: undefined reference to
MPI::Comm::Comm()' restraint_camshift2.o: In function
Intracomm':/home/users/didymos/openmpi-1.6.3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h:23: undefined reference to
MPI::Comm::Comm()' restraint_camshift2.o: In function
Intracomm':/home/users/didymos/openmpi-1.6.3/include/openmpi/ompi/mpi/cxx/intracomm.h:25: undefined reference to `MPI::Comm::Comm()'
/home/users/didymos/openmpi-1.6.3/include/openmpi/ompi/mpi/cxx/intracomm.h:25: undefined reference to `MPI::Comm::Comm()'
restraint_camshift2.o:/home/users/didymos/openmpi-1.6.3/include/openmpi/ompi/mpi/cxx/intracomm.h:25: more undefined references to `MPI::Comm::Comm()' follow restraint_camshift2.o:(.data.rel.ro._ZTVN3MPI3WinE[_ZTVN3MPI3WinE]+0x48):
undefined reference to `MPI::Win::Free()' restraint_camshift2.o:(.data.rel.ro._ZTVN3MPI8DatatypeE[_ZTVN3MPI8DatatypeE]+0x78):
undefined reference to `MPI::Datatype::Free()' collect2: error: ld
returned 1 exit status make[3]: * [mdrun] Error 1 make[3]: Leaving
directory `/home/users/didymos/src/gromacs-4.5.5/src/kernel' make[2]: * [all-recursive] Error 1
make[2]: Leaving directory `/home/users/didymos/src/gromacs-4.5.5/src'
make[1]: * [all] Error 2
make[1]: Leaving directory `/home/users/didymos/src/gromacs-4.5.5/src'
make: * [all-recursive] Error 1
I am using gcc 4.7.3 Any ideas or suggestions? Thanks! Best,
tomek
mpifort
,mpif77
ormpif90
) adding the-lmpi_cxx
should help. – Assert