The following error message:
#error "SEEK_SET is #defined but must not be for the C++ binding of MPI"
Is the result of a name conflict between stdio.h and the MPI C++ binding. Users should place the mpi include before the stdio.h and iostream includes.
Users may also see the following error messages as a result of including stdio or iostream before mpi:
#error "SEEK_CUR is #defined but must not be for the C++ binding of MPI" #error "SEEK_END is #defined but must not be for the C++ binding of MPI"
When profiling with TAU, you may get this message regardless of the order. In this case, you can add -DMPICH_IGNORE_CXX_SEEK to the compile line to remove the error (this fix should work generally).