Using the OPEN_MPI #define is probably the safest bet to identify the MPI as Open MPI, which then opens the door to using mpi<compiler> -- showme to find the proper linker flags. I would *NOT* recommend hard- coding specific flags just because you know that you're linking against Open MPI (because we can/have changed the flags behind the scenes).
I think one of the possible solutions would be, in the next MPI standard (will it come very soon?, or not?), specify the library (libraries) for mixed language linking. -- Best regards, Rich