It would be useful for the end user to use mpic++ to obtain the compile and link flags for both release and debug builds.


There is a number of possible solutions:

1.       add the showme flags of mpic++ and any other similar binary to something like -showme:compile_debug -showme:compile_release -showme:link_release -showme:link_debug

2.       add a -showme_debug flag to tune the -showme:compile -showme:link

3.       have 2 versions of the binary mpic++(release) and mpic++(debug)

4.       have 1 version of the mpic++ but 2 versions of the of wrapper-data.txt file

5.       have 1 version of mpic++ and 1 version of the wrapper-data file, and 2 sections in the wrapper-data file


It would be great to have this delivered in the win binaries package (include both release and debug libs, that's already the case), and advise 3rd party packagers on unix/linux/mac distributions to do similarily


It would be also useful to publish the cmake flags used by default to produce the win binaries


I am available to test the packages if possible, also is there a wiki for requests or a similar system where I should file the above.






From: Shiqing Fan [mailto:fan@hlrs.de]
Sent: 19 November 2011 04:44
To: Open MPI Users
Cc: MM
Subject: Re: [OMPI users] mpic++-wrapper-data.txt msvc10 Release/Debug 1.5.4



There is no easy solution. But you can try to use WANT_EXE_DEBUG_POSTFIX option in CMake GUI. Enabling this option will generate different executable.library names for debug and release build. For example, mpic++d.exe for debug and mpic++.exe for release.

For you case, just build both debug and release version of Open MPI 1.5.4, and install them into the same path, you will get two sets of executables/libraries (with "d" postfix for debug version) and mpic++ config files (mpic++d-wrapper-data.txt for debug version). Then just append your own debug/release compile options in the config files, and build with boost mpi as you need.

Hope this helps.


On 2011-11-18 9:44 PM, MM wrote:



Compiling boost mpi library uses mpic++ to get the compile flags to pass to cl.exe and link libs to pass to the linker.

In my case:

>>> mpic++ -showme:compile

/I"C:\Program Files\openmpi\bin/../include" /TP /EHsc /MD

>>> mpic++ -showme:link

/link /LIBPATH:"C:\Program Files\openmpi\bin/../lib" libmpi_cxx.lib libmpi.lib libopen-pal.lib libopen-rte.lib advapi32.lib Ws2_32.lib shlwapi.lib


To choose Release build or Debug build, is it possible to use mpic++-wrapper-data.txt to specify both options?




libmpi_cxx.lib libmpi.lib libopen-pal.lib libopen-rte.lib advapi32.lib Ws2_32.lib shlwapi.lib




libmpi_cxxd.lib libmpid.lib libopen-pald.lib libopen-rted.lib advapi32.lib Ws2_32.lib shlwapi.lib

is there a debug version of "advapi32.lib Ws2_32.lib shlwapi.lib"


For now, I will just override that file for Release, build boost mpi, override for Debug, build for Debug.





users mailing list

Shiqing Fan
High Performance Computing Center Stuttgart (HLRS)
Tel: ++49(0)711-685-87234      Nobelstrasse 19
Fax: ++49(0)711-685-65832      70569 Stuttgart
email: fan@hlrs.de