[MPICH] Can't compile against mpich2 with visual c++ 6

David Ashton ashton at mcs.anl.gov
Wed Aug 24 05:25:19 CDT 2005


imalone,

We've added support for compilers that cannot handle the Clone functions
correctly.  It will be available in the next release.  I've attached the
current version of mpicxx.h.  You would need to add "#define
HAVE_NO_VARIABLE_RETURN_TYPE_SUPPORT" before including mpicxx.h.

This new header file may not work with the cxx.lib in the current
distribution but you can use it to see what needs to be changed in the old
header file.  Simply copy the HAVE_NO_VARIABLE_RETURN_TYPE_SUPPORT sections
from the new file to the old.

-David Ashton

-----Original Message-----
From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of Ian Malone
Sent: Wednesday, August 24, 2005 3:35 AM
To: mpich-discuss at mcs.anl.gov
Subject: [MPICH] Can't compile against mpich2 with visual c++ 6

I've already posted this to comp.parallel.mpi, but maybe this
is a more appropriate place:

Does anyone know what's going on here?
I've got a set of programs written for mpi.  As far as I remember
they originally used MPICH2 and worked fine.  Then my machine had
to be reinstalled and I can't get them to build anymore.  I'm
pretty sure this is a different version of MPICH2 from the one I
originally used, because I don't remember having to deal with
SEEK_SET et. al.  Visual C++ is patched to SP6 and the version
of MPICH2 is the current one available for download.

The following is the result of trying to compile the mpi hello world,
but it's typical of what happens when trying to build any of these
programs:

c:\program files\mpich2\include\mpicxx.h(1385) : error C2555: 
'MPI::Nullcomm::Clone' : overriding virtual function differs from 
'MPI::Comm::Clone' only by return type or calling convention
         c:\program files\mpich2\include\mpicxx.h(1033) : see 
declaration of 'Comm'
c:\program files\mpich2\include\mpicxx.h(1435) : error C2555: 
'MPI::Intercomm::Clone' : overriding virtual function differs from 
'MPI::Comm::Clone' only by return type or calling convention
         c:\program files\mpich2\include\mpicxx.h(1033) : see 
declaration of 'Comm'
c:\program files\mpich2\include\mpicxx.h(1465) : error C2259: 
'Intercomm' : cannot instantiate abstract class due to following members:
         c:\program files\mpich2\include\mpicxx.h(1390) : see 
declaration of 'Intercomm'
c:\program files\mpich2\include\mpicxx.h(1465) : warning C4259: 'class 
MPI::Comm &__thiscall MPI::Comm::Clone(void) const' : pure virtual 
function was not defined
         c:\program files\mpich2\include\mpicxx.h(1350) : see 
declaration of 'Clone'
c:\program files\mpich2\include\mpicxx.h(1499) : error C2259: 
'Intercomm' : cannot instantiate abstract class due to following members:
         c:\program files\mpich2\include\mpicxx.h(1390) : see 
declaration of 'Intercomm'
c:\program files\mpich2\include\mpicxx.h(1499) : warning C4259: 'class 
MPI::Comm &__thiscall MPI::Comm::Clone(void) const' : pure virtual 
function was not defined
         c:\program files\mpich2\include\mpicxx.h(1350) : see 
declaration of 'Clone'
c:\program files\mpich2\include\mpicxx.h(1505) : error C2259: 
'Intercomm' : cannot instantiate abstract class due to following members:
         c:\program files\mpich2\include\mpicxx.h(1390) : see 
declaration of 'Intercomm'
c:\program files\mpich2\include\mpicxx.h(1505) : warning C4259: 'class 
MPI::Comm &__thiscall MPI::Comm::Clone(void) const' : pure virtual 
function was not defined
         c:\program files\mpich2\include\mpicxx.h(1350) : see 
declaration of 'Clone'
c:\program files\mpich2\include\mpicxx.h(1510) : error C2555: 
'MPI::Intracomm::Clone' : overriding virtual function differs from 
'MPI::Comm::Clone' only by return type or calling convention
         c:\program files\mpich2\include\mpicxx.h(1033) : see 
declaration of 'Comm'
c:\program files\mpich2\include\mpicxx.h(1516) : error C2259: 
'Intercomm' : cannot instantiate abstract class due to following members:
         c:\program files\mpich2\include\mpicxx.h(1390) : see 
declaration of 'Intercomm'
c:\program files\mpich2\include\mpicxx.h(1516) : warning C4259: 'class 
MPI::Comm &__thiscall MPI::Comm::Clone(void) const' : pure virtual 
function was not defined
         c:\program files\mpich2\include\mpicxx.h(1350) : see 
declaration of 'Clone'
c:\program files\mpich2\include\mpicxx.h(1523) : error C2259: 
'Intercomm' : cannot instantiate abstract class due to following members:
         c:\program files\mpich2\include\mpicxx.h(1390) : see 
declaration of 'Intercomm'
c:\program files\mpich2\include\mpicxx.h(1523) : warning C4259: 'class 
MPI::Comm &__thiscall MPI::Comm::Clone(void) const' : pure virtual 
function was not defined
         c:\program files\mpich2\include\mpicxx.h(1350) : see 
declaration of 'Clone'
c:\program files\mpich2\include\mpicxx.h(1530) : error C2259: 
'Intercomm' : cannot instantiate abstract class due to following members:
         c:\program files\mpich2\include\mpicxx.h(1390) : see 
declaration of 'Intercomm'
c:\program files\mpich2\include\mpicxx.h(1530) : warning C4259: 'class 
MPI::Comm &__thiscall MPI::Comm::Clone(void) const' : pure virtual 
function was not defined
         c:\program files\mpich2\include\mpicxx.h(1350) : see 
declaration of 'Clone'
c:\program files\mpich2\include\mpicxx.h(1544) : error C2259: 
'Intercomm' : cannot instantiate abstract class due to following members:
         c:\program files\mpich2\include\mpicxx.h(1390) : see 
declaration of 'Intercomm'
c:\program files\mpich2\include\mpicxx.h(1544) : warning C4259: 'class 
MPI::Comm &__thiscall MPI::Comm::Clone(void) const' : pure virtual 
function was not defined
         c:\program files\mpich2\include\mpicxx.h(1350) : see 
declaration of 'Clone'
c:\program files\mpich2\include\mpicxx.h(2161) : error C2555: 
'MPI::Graphcomm::Clone' : overriding virtual function differs from 
'MPI::Comm::Clone' only by return type or calling convention
         c:\program files\mpich2\include\mpicxx.h(1033) : see 
declaration of 'Comm'
c:\program files\mpich2\include\mpicxx.h(2161) : error C2555: 
'MPI::Graphcomm::Clone' : overriding virtual function differs from 
'MPI::Intracomm::Clone' only by return type or calling convention
         c:\program files\mpich2\include\mpicxx.h(1442) : see 
declaration of 'Intracomm'
c:\program files\mpich2\include\mpicxx.h(2260) : error C2555: 
'MPI::Cartcomm::Clone' : overriding virtual function differs from 
'MPI::Comm::Clone' only by return type or calling convention
         c:\program files\mpich2\include\mpicxx.h(1033) : see 
declaration of 'Comm'
c:\program files\mpich2\include\mpicxx.h(2260) : error C2555: 
'MPI::Cartcomm::Clone' : overriding virtual function differs from 
'MPI::Intracomm::Clone' only by return type or calling convention
         c:\program files\mpich2\include\mpicxx.h(1442) : see 
declaration of 'Intracomm'
c:\program files\mpich2\include\mpicxx.h(2353) : error C2259: 
'Intracomm' : cannot instantiate abstract class due to following members:
         c:\program files\mpich2\include\mpicxx.h(1442) : see 
declaration of 'Intracomm'
c:\program files\mpich2\include\mpicxx.h(2353) : warning C4259: 'class 
MPI::Comm &__thiscall MPI::Comm::Clone(void) const' : pure virtual 
function was not defined
         c:\program files\mpich2\include\mpicxx.h(1350) : see 
declaration of 'Clone'
c:\program files\mpich2\include\mpicxx.h(2354) : error C2259: 
'Intracomm' : cannot instantiate abstract class due to following members:
         c:\program files\mpich2\include\mpicxx.h(1442) : see 
declaration of 'Intracomm'
c:\program files\mpich2\include\mpicxx.h(2354) : warning C4259: 'class 
MPI::Comm &__thiscall MPI::Comm::Clone(void) const' : pure virtual 
function was not defined
         c:\program files\mpich2\include\mpicxx.h(1350) : see 
declaration of 'Clone'
c:\program files\mpich2\include\mpicxx.h(2356) : error C2259: 'Nullcomm' 
: cannot instantiate abstract class due to following members:
         c:\program files\mpich2\include\mpicxx.h(1366) : see 
declaration of 'Nullcomm'
c:\program files\mpich2\include\mpicxx.h(2356) : warning C4259: 'class 
MPI::Comm &__thiscall MPI::Comm::Clone(void) const' : pure virtual 
function was not defined
         c:\program files\mpich2\include\mpicxx.h(1350) : see 
declaration of 'Clone'


I can go and use MPICH 1.2, but I get the impression it's deprecated.
Any suggestions appreciated.
-- 
imalone

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mpicxx.h
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20050824/00872228/attachment.diff>


More information about the mpich-discuss mailing list