Boost logo

Boost-MPI :

Subject: [Boost-mpi] Working with Boost MPI And OpenMPI in Windows
From: Yehuda Landau (didist_at_[hidden])
Date: 2013-10-09 10:10:29


Hi

I have read that boost::mpi package is has many advantages and want to use
it in for development in Visual Studio 2010/12 environment

I downloaded OpenMPI version 1.62 which is the last version supporting
binaries for windows and added the Bin directory to my PATH

I downloaded the Boost Library
I found out how to change the user-jam (using mvsc; using mpi;) and mpi-jam
( local cluster_pack_path_native =
"C:\\Workspace\\Lib\\OpenMPI_v1.6.2-x64") files in order to compile the mpi
library

I managed to Build the MPI and SERIALIZATION libraries

HOWEVER
I am using visual studio 2012
I added the libs and includes for the openmpi

So I MANAGE to compile normal MPI programs and run it using mpiexec I add
the libs
libmpi.lib
libmpi_cxx.lib
libopen-pal.lib
libopen-rte.lib
and Define
OMPI_IMPORTS=1
OPAL_IMPORTS=1
ORTE_IMPORTS=1

BUT when I try to compile boost::mpi simplest program

#include <boost/mpi/environment.hpp>

#include <boost/mpi/communicator.hpp>

#include <iostream>

int main( int argc, char *argv[] )

{

boost::mpi::environment env(argc, argv);

boost::mpi::communicator world;

std::cout << "I am process " << world.rank() << " of " << world.size() <<
"." << std::endl;

  return 0;

}
 I get the following unresolved external symbol though when inspecting the
libmpi.lib I SEE Those METHODS (when using DUMPBIN /SYMBOLS)

How can I solve that?
Maybe I have to recompile the boost::mpi lib differently with some
defines???

Please Help me find a solution
Best
Didi

The linkage errors output:

libboost_mpi-vc110-mt-gd-1_54.lib(environment.obj) : error LNK2001:
unresolved external symbol ompi_mpi_comm_world

1>libboost_mpi-vc110-mt-gd-1_54.lib(communicator.obj) : error LNK2019:
unresolved external symbol ompi_mpi_comm_world referenced in function
"public: char & __cdecl std::vector<char,class boost::mpi::allocator<char>
>::operator[](unsigned __int64)" (??A?$vector_at_DV?$allocator_at_D@mpi_at_boost
@@@std@@QEAAAEAD_K_at_Z)

1>libboost_mpi-vc110-mt-gd-1_54.lib(environment.obj) : error LNK2001:
unresolved external symbol ompi_mpi_errors_return

1>libboost_mpi-vc110-mt-gd-1_54.lib(communicator.obj) : error LNK2019:
unresolved external symbol ompi_mpi_errors_return referenced in function
"protected: unsigned __int64 __cdecl std::vector<char,class
boost::mpi::allocator<char> >::_Grow_to(unsigned __int64)const " (?_Grow_to@
?$vector_at_DV?$allocator_at_D@mpi_at_boost@@@std@@IEBA_K_K_at_Z)

1>libboost_mpi-vc110-mt-gd-1_54.lib(communicator.obj) : error LNK2001:
unresolved external symbol ompi_mpi_comm_null

1>libboost_mpi-vc110-mt-gd-1_54.lib(communicator.obj) : error LNK2001:
unresolved external symbol ompi_mpi_group_empty

1>libboost_mpi-vc110-mt-gd-1_54.lib(group.obj) : error LNK2001: unresolved
external symbol ompi_mpi_group_empty

1>libboost_mpi-vc110-mt-gd-1_54.lib(communicator.obj) : error LNK2001:
unresolved external symbol ompi_request_null

1>libboost_mpi-vc110-mt-gd-1_54.lib(request.obj) : error LNK2001:
unresolved external symbol ompi_request_null

1>libboost_mpi-vc110-mt-gd-1_54.lib(communicator.obj) : error LNK2001:
unresolved external symbol ompi_mpi_unsigned_long_long

1>libboost_mpi-vc110-mt-gd-1_54.lib(point_to_point.obj) : error LNK2001:
unresolved external symbol ompi_mpi_unsigned_long_long

1>libboost_mpi-vc110-mt-gd-1_54.lib(communicator.obj) : error LNK2001:
unresolved external symbol ompi_mpi_packed

1>libboost_mpi-vc110-mt-gd-1_54.lib(point_to_point.obj) : error LNK2001:
unresolved external symbol ompi_mpi_packed

1>libboost_mpi-vc110-mt-gd-1_54.lib(communicator.obj) : error LNK2001:
unresolved external symbol ompi_mpi_info_null

1>libboost_mpi-vc110-mt-gd-1_54.lib(point_to_point.obj) : error LNK2001:
unresolved external symbol ompi_mpi_info_null

1>libboost_mpi-vc110-mt-gd-1_54.lib(mpi_datatype_cache.obj) : error
LNK2001: unresolved external symbol ompi_mpi_datatype_null

1>C:\Workspace\Whale\x64\Debug\SimpleClusterJobDispatcher.exe : fatal error
LNK1120: 9 unresolved externals



Boost-Commit list run by troyer at boostpro.com