trying to build Boost MPI, but the lib files are not created. What's going on?
I am trying to run a program with Boost MPI, but the thing is I don't have the .lib. So I try to create one by following the instruction at http://www.boost.org/doc/libs/1_43_0/doc/html/mpi/getting_started.html#mpi.config
The instruction says "For many users using LAM/MPI, MPICH, or OpenMPI, configuration is almost automatic", I got myself OpenMPI in C:\, but I didn't do anything more with it. Do we need to do anything with it? I also got myself MPICH2 in Program Files, and didn't do anything more with it as well. At this point of the instruction is where I am quite unsure about what exactly do we have to do.
Beside that, another statement from the instruction: "If you don't already have a file user-config.jam in your home directory, copy tools/build/v2/user-config.jam there." Well, I simply do what it says. I got myself "user-config.jam" in C:\boost_1_43_0> along with "using mpi ;" into the file.
Next, this is what I've done: bjam --with-mpi
C:\boost_1_43_0>bjam --with-mpi
WARNING: No python installation configured and autoconfiguration
failed. See http://www.boost.org/libs/python/doc/building.html
for configuration instructions or pass --without-python to
suppress this message and silently skip all Boost.Python targets
Building the Boost C++ Libraries.
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
warning: Unable to construct ./stage-unversioned
warning: Unable to construct ./stage-unversioned
Component configuration:
- date_time : not building
- filesystem : not building
- graph : not building
- graph_parallel : not building
- iostreams : not building
- math : not building
- mpi : building
- program_options : not building
- python : not building
- random : not building
- regex : not building
- serialization : not building
- signals 开发者_StackOverflow中文版 : not building
- system : not building
- test : not building
- thread : not building
- wave : not building
...found 1 target...
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
C:\boost_1_43_0
The following directory should be added to linker library paths:
C:\boost_1_43_0\stage\lib
C:\boost_1_43_0>
I see that there are many libs in C:\boost_1_43_0\stage\lib, but I see no trace of libboost_mpi-vc100-mt-1_43.lib or libboost_mpi-vc100-mt-gd-1_43.lib at all. These are the libraries required for linking in mpi applications.
What could possibly gone wrong when libraries are not being built?
I suspect it's just not reading your user-config.jam... When the build refers to, and searches for, the user-config.jam it does so in the %HOME% location. Not in the root directory of the Boost sources, nor in the current dir. But you can make it use a specific user-config.jam file with an option: bjam --user-config=user-config.jam ...
. Which will look for it only in the current dir. Or you could also specify a full path to the file. You should read the comments in the mpi.jam tool file (mpi.jam) as it explains under which conditions it will automatically set up the mpi tools. Specifically the note about having mpic++
in your path.
I built boost 1.55 with mpi with the following commands: ./bjam link=shared --prefix=/software/boost_1.55 install
vim tools/build/v2/user-config.jam
-->> at the end of user-config.jam "using mpi ;" (without quotes)
./b2 link=shared --prefix=/software/boost_1.55 install
If I provide --with-mpi I got the same problem, therefore I've built it that way.
精彩评论