[MPICH] [mpich-g2]undefined reference to `PMPI::Request::ignored_status'...

Anna Mereu anna.mereu at diee.unica.it
Wed Jun 27 12:04:02 CDT 2007


Hi, i'm facing a problem compiling c++ code with mpiCC.
Excluding the warning messages, i think my problem concerns the linking
phase. In fact, when i run the make command, i got the following errors:

/usr/local/mpich-g2/bin/mpiCC -c confronto_cpp.cpp \
-I/usr/local/mpich-g2/include -I/usr/local/mpich-g2-cpp/include/mpi2c++ 
-lstdc++ -lm -L/usr/local/mpich-g2-cpp/lib/libmpichg2
/usr/local/mpich-g2/include/mpi2c++/pcomm.h:59: warning: ‘class 
PMPI::Comm’ has virtual functions but non-virtual destructor
/usr/local/mpich-g2/include/mpi2c++/pintracomm.h:30: warning: ‘class 
PMPI::Intracomm’ has virtual functions but non-virtual destructor
/usr/local/mpich-g2/include/mpi2c++/ptopology.h:31: warning: ‘class 
PMPI::Cartcomm’ has virtual functions but non-virtual destructor
/usr/local/mpich-g2/include/mpi2c++/ptopology.h:80: warning: ‘class 
PMPI::Graphcomm’ has virtual functions but non-virtual destructor
/usr/local/mpich-g2/include/mpi2c++/pintercomm.h:31: warning: ‘class 
PMPI::Intercomm’ has virtual functions but non-virtual destructor
/usr/local/mpich-g2/include/mpi2c++/comm.h:106: warning: ‘class 
MPI::Comm’ has virtual functions but non-virtual destructor
/usr/local/mpich-g2/include/mpi2c++/intracomm.h:30: warning: ‘class 
MPI::Intracomm’ has virtual functions but non-virtual destructor
/usr/local/mpich-g2/include/mpi2c++/topology.h:31: warning: ‘class 
MPI::Cartcomm’ has virtual functions but non-virtual destructor
/usr/local/mpich-g2/include/mpi2c++/topology.h:112: warning: ‘class 
MPI::Graphcomm’ has virtual functions but non-virtual destructor
/usr/local/mpich-g2/include/mpi2c++/intercomm.h:31: warning: ‘class 
MPI::Intercomm’ has virtual functions but non-virtual destructor
/usr/local/mpich-g2/bin/mpiCC confronto_cpp.o -o confronto_cpp \
-I/usr/local/mpich-g2/include -lstdc++ -lm 
-L/usr/local/mpich-g2-cpp/lib/libmpichg2
confronto_cpp.o: In function `PMPI::Request::Test()':
/usr/local/mpich-g2/include/mpi2c++/request_inln.h:71: undefined 
reference to `PMPI::Request::ignored_status'
confronto_cpp.o: In function `PMPI::Request::Wait()':
/usr/local/mpich-g2/include/mpi2c++/request_inln.h:46: undefined 
reference to `PMPI::Request::ignored_status'
confronto_cpp.o: In function `Cartcomm':
/usr/local/mpich-g2/include/mpi2c++/topology_inln.h:37: undefined 
reference to `MPI::Is_initialized()'
confronto_cpp.o: In function `Graphcomm':
/usr/local/mpich-g2/include/mpi2c++/topology_inln.h:166: undefined 
reference to `MPI::Is_initialized()'
confronto_cpp.o: In function `Intracomm':
/usr/local/mpich-g2/include/mpi2c++/intracomm_inln.h:33: undefined 
reference to `MPI::Is_initialized()'
confronto_cpp.o: In function `PMPI::Intracomm::Scan(void const*, void*, 
int, PMPI::Datatype const&, PMPI::Op const&) const':
/usr/local/mpich-g2/include/mpi2c++/intracomm_inln.h:185: undefined 
reference to `PMPI::Intracomm::current_op'
/usr/local/mpich-g2/include/mpi2c++/intracomm_inln.h:187: undefined 
reference to `PMPI::Intracomm::current_op'
confronto_cpp.o: In function `PMPI::Intracomm::Reduce_scatter(void 
const*, void*, int*, PMPI::Datatype const&, PMPI::Op const&) const':
/usr/local/mpich-g2/include/mpi2c++/intracomm_inln.h:175: undefined 
reference to `PMPI::Intracomm::current_op'
/usr/local/mpich-g2/include/mpi2c++/intracomm_inln.h:178: undefined 
reference to `PMPI::Intracomm::current_op'
confronto_cpp.o: In function `PMPI::Intracomm::Allreduce(void const*, 
void*, int, PMPI::Datatype const&, PMPI::Op const&) const':
/usr/local/mpich-g2/include/mpi2c++/intracomm_inln.h:164: undefined 
reference to `PMPI::Intracomm::current_op'
confronto_cpp.o:/usr/local/mpich-g2/include/mpi2c++/intracomm_inln.h:166: 
more undefined references to `PMPI::Intracomm::current_op' follow
confronto_cpp.o: In function `PMPI::Comm::Set_attr(int, void const*) const':
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:442: undefined reference 
to `PMPI::Comm::mpi_comm_map'
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:444: undefined reference 
to `PMPI::Comm::mpi_comm_map'
confronto_cpp.o: In function 
`PMPI::Comm::Set_errhandler(PMPI::Errhandler const&)':
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:374: undefined reference 
to `PMPI::Comm::mpi_err_map'
confronto_cpp.o: In function `PMPI::Comm::Free()':
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:329: undefined reference 
to `PMPI::Comm::mpi_comm_map'
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:330: undefined reference 
to `PMPI::Comm::mpi_comm_map'
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:331: undefined reference 
to `PMPI::Comm::mpi_comm_map'
confronto_cpp.o: In function `PMPI::Comm::Sendrecv_replace(void*, int, 
PMPI::Datatype const&, int, int, int, int) const':
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:282: undefined reference 
to `PMPI::Comm::ignored_status'
confronto_cpp.o: In function `PMPI::Comm::Sendrecv(void const*, int, 
PMPI::Datatype const&, int, int, void*, int, PMPI::Datatype const&, int, 
int) const':
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:254: undefined reference 
to `PMPI::Comm::ignored_status'
confronto_cpp.o: In function `PMPI::Comm::Probe(int, int) const':
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:168: undefined reference 
to `PMPI::Comm::ignored_status'
confronto_cpp.o: In function `PMPI::Comm::Iprobe(int, int) const':
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:151: undefined reference 
to `PMPI::Comm::ignored_status'
confronto_cpp.o: In function `PMPI::Comm::Recv(void*, int, 
PMPI::Datatype const&, int, int) const':
/usr/local/mpich-g2/include/mpi2c++/comm_inln.h:57: undefined reference 
to `PMPI::Comm::ignored_status'
confronto_cpp.o: In function `PMPI::Op::Init(void (*)(void const*, 
void*, int, PMPI::Datatype const&), bool)':
/usr/local/mpich-g2/include/mpi2c++/op_inln.h:122: undefined reference 
to `op_intercept'
confronto_cpp.o:(.rodata._ZTVN3MPI2OpE[vtable for MPI::Op]+0x10): 
undefined reference to `MPI::Op::Init(void (*)(void const*, void*, int, 
MPI::Datatype const&), bool)'
confronto_cpp.o:(.rodata._ZTVN3MPI2OpE[vtable for MPI::Op]+0x14): 
undefined reference to `MPI::Op::Free()'
collect2: ld returned 1 exit status

How can i fix these errors?
I thought that it was something tied to the compiler because if i 
compile the program in another machine the errors
desappear and only the warnings stay. The compiler is the same (g++-4.1) 
with the exception that the one in which the compilation fails is a 32 
bit single core machine whereas the second one is a 64 bit 
4-core......The installation of mpich-g2 libraries has been 
substantially the same between the twos, so i don't know what to do....
Can anybody help me?
Thanks a lot
Anna




More information about the mpich-discuss mailing list