[MPICH] [mpich-g2]undefined reference to `PMPI::Request::ignored_status'...
Anna Mereu
anna.mereu at diee.unica.it
Wed Jun 27 12:35:52 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