我正在尝试使用Boost MPI运行程序,但问题是我没有.lib。所以我尝试按照http://www.boost.org/doc/libs/1_43_0/doc/html/mpi/getting_started.html#mpi.config
上的说明创建一个指令说“对于许多使用LAM / MPI,MPICH或OpenMPI的用户,配置几乎是自动的”,我在C:\中得到了自己的OpenMPI,但我没有做更多的事情。我们需要做任何事情吗?我也在程序文件中获得了自己的MPICH2,并且没有对它做任何更多的事情。在这一点上,我非常不确定我们必须做什么。
除此之外,该指令的另一个声明:“如果您的主目录中还没有文件user-config.jam,请在那里复制tools / build / v2 / user-config.jam。”好吧,我只是按照它说的做。我在C:\ boost_1_43_0>中获得了“user-config.jam”。以及“使用mpi”;进入文件。
接下来,这就是我所做的: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 : 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>
我看到C:\ boost_1_43_0 \ stage \ lib中有很多库,但我看不到libboost_mpi-vc100-mt-1_43.lib或libboost_mpi-vc100-mt-gd-1_43.lib的痕迹。这些是在mpi应用程序中链接所需的库。
未构建库时可能出现什么问题?
答案 0 :(得分:14)
我怀疑它只是没有读取你的user-config.jam ...当构建引用并搜索user-config.jam时,它会在%HOME%位置中这样做。不在Boost源的根目录中,也不在当前目录中。但是您可以使用特定的user-config.jam文件,其中包含以下选项:bjam --user-config=user-config.jam ...
。哪个只会在当前目录中查找。或者您也可以指定文件的完整路径。您应该阅读mpi.jam工具文件(mpi.jam)中的注释,因为它解释了它将自动设置mpi工具的条件。特别是关于在您的路径中使用mpic++
的说明。
答案 1 :(得分:0)
我使用以下命令使用mpi构建了boost 1.55: ./bjam link = shared --prefix = / software / boost_1.55 install
vim tools / build / v2 / user-config.jam
- >>在user-config.jam的末尾“使用mpi;” (没有引号)
./ b2 link = shared --prefix = / software / boost_1.55 install
如果我提供--with-mpi我遇到了同样的问题,因此我就是这样构建的。