On Mon, 2007-12-31 at 19:17 -0700, Brian Barrett wrote: > On Dec 31, 2007, at 7:12 PM, Adam C Powell IV wrote: > > > I'm trying to build the Salomé engineering simulation tool, and am > > having trouble compiling with OpenMPI. The full text of the error > > is at > > http://lyre.mit.edu/~powell/salome-error . The crux of the problem > > can > > be reproduced by trying to compile a C++ file with: > > > > extern "C" > > { > > #include "mpi.h" > > } > > > > At the end of mpi.h, the C++ headers get loaded while in extern C > > mode, > > and the result is a vast list of errors. > > Yes, it will. Similar to other external packages (like system > headers), you absolutely should not include mpi.h from an extern "C" > block. It will fail, as you've noted. The proper solution is to not > be in an extern "C" block when including mpi.h.
Okay, fair enough for this test example. But the Salomé case is more complicated: extern "C" { #include <hdf5.h> } What to do here? The hdf5 prototypes must be in an extern "C" block, but hdf5.h #includes a file which #includes mpi.h... Thanks for the quick reply! -Adam -- GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6 Engineering consulting with open source tools http://www.opennovation.com/