尝试构建Boost MPI,但不创建lib文件。这是怎么回事?

时间:2010-05-23 16:45:34

标签: boost build configure boost-mpi

我正在尝试使用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应用程序中链接所需的库。

未构建库时可能出现什么问题?

2 个答案:

答案 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我遇到了同样的问题,因此我就是这样构建的。