Hi, all:
I need to install boost library (/home/myname/boost_2010_6_8/boost_1_43_0).
http://www.boost.org/doc/libs/1_43_0/more/getting_started/index.html
It has MPI library :
http://www.boost.org/doc/libs/1_42_0/doc/html/mpi.html
After installing it, I compile some c++ program with calling for boost.MPI class, the compiler cannot find the header files in the program even though I have included the boost path in the compile command.
example:
------------------------------------------------------------------------
#include </boost/mpi/environment.hpp>
#include <boost/mpi/communicator.hpp>
#include <iostream>
namespace mpi = boost::mpi;
int main(int argc, char* argv[])
{
mpi::environment env(argc, argv);
mpi::communicator world;
std::cout << "I am process " << world.rank() << " of " << world.size()
<< "." << std::endl;
return 0;
}
--------------------------------------------------------------------------
mpic++ -o testp2p test_p2p.cpp I/home/myname/boost_2010_6_8/boost_1_43_0
g++: I/home/myname/boost_2010_6_8/boost_1_43_0: No such file or directory
test_p2p.cpp:7:38: error: /boost/mpi/environment.hpp: No such file or directory
test_p2p.cpp:11:38: error: boost/mpi/communicator.hpp: No such file or directory
Actually, I have installed these header files in the directory.
I find a possible reason:
When I built the package, it tells me that :
-----------------------------------------------------------------
-bash-3.2$ ./bjam
Building the Boost C++ Libraries.
warning: Building Boost.Regex with the optional Unicode/ICU support disabled.
note: Please refer to the Boost.Regex documentation for more information
note: this is a strictly optional feature.
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
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.
Component configuration:
- date_time : building
- filesystem : building
- graph : building
- graph_parallel : building
- iostreams : building
- math : building
- mpi : building
- program_options : building
- python : building
- random : building
- regex : building
- serialization : building
- signals : building
- system : building
- test : building
- thread : building
- wave : building
...patience...
...patience...
...patience...
...found 6754 targets...
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
/lustre/jxding/boost_2010_6_8/boost_1_43_0
The following directory should be added to linker library paths:
/lustre/jxding/boost_2010_6_8/boost_1_43_0/stage/lib
------------------------------------------------------------------------------------------
It seems that I need to specify I need to use mpi for the bjam builder.
But, I have added "using mpi ;" and "using mpi : /opt/openmpi-gnu/bin/mpic++ ;" in the file
/home/myname/boost_2010_6_8/boost_1_43_0/user-config.jam.
I have also added it in the file
/home/myname/boost_2010_6_8/boost_1_43_0/tools/build/v2/user-config.jam.
But, I still got the same error. It seems that there is something wrong with the package ?
or the compiler cannot understand the "using mpi ;" in the user-config.jam ?
Any help is appreciated.
Jack
June 13 2010
The New Busy is not the too busy. Combine all your e-mail accounts with Hotmail. Get busy.