I am compiling a C++ program that uses the Open-MPI c++ bindings. I
think there is a bug in the constants.h and/or mpicxx.cc files.
The file constants.h defines lots of constants as extern. There are
lots of things like:
OMPI_DECLSPEC extern const int ERR_COUNT;
Because of the extern keyword, it is assumed that ERR_COUNT will be
found at runtime. But when I run, I find that some of the symbols
defined as extern in constants.h don't exist!
It looks like the problem is that the constants are never defined in
mpicxx.cc. I found problems with the following constants:
not defined in mpicxx.cc:
only defined in mpicxx.cc if one-sided support is enabled:
By commenting corresponding lines out in constants.h, my code
compiled and ran fine. Is this a bug, or should these things be
defined somewhere else. Thanks!