如何在Buildroot下构建Boost.MPI?

如何在Buildroot下构建Boost.MPI?,boost,buildroot,boost-mpi,Boost,Buildroot,Boost Mpi,默认情况下,在中交叉编译时,包BR2\u包\u BOOST\u MPI不会生成:它需要检测MPI(例如OpenMPI)配置和库,并且由于无法自动(在buildroot环境中)执行此操作,bjam生成系统只会通知BOOST.MPI被跳过: warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add "using mpi ;" to user-config.j

默认情况下,在中交叉编译时,包
BR2\u包\u BOOST\u MPI
不会生成:它需要检测MPI(例如OpenMPI)配置和库,并且由于无法自动(在buildroot环境中)执行此操作,
bjam
生成系统只会通知BOOST.MPI被跳过:

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.
在我的环境中,我可以通过修补
output/build/boost-1.61.0/user config.jam
来解决这个问题:

using gcc : 6.2.0 : 
     /home/me/buildroot-2016.11/output/host/usr/bin/arm-buildroot-linux-gnueabihf-g++ : 
     <cxxflags>"-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os " <linkflags>"" ;

using mpi : /home/me/buildroot-2016.11/output/host/usr/bin/arm-buildroot-linux-gnueabihf/g++ : 
<find-shared-library>mpi  <find-shared-library>dl ;
使用gcc:6.2.0:
/home/me/buildroot-2016.11/output/host/usr/bin/arm-buildroot-linux-gnueabihf-g++:
“-D_LARGEFILE_SOURCE-D_LARGEFILE64_SOURCE-D_FILE_OFFSET_BITS=64-Os”“”;
使用mpi:/home/me/buildroot-2016.11/output/host/usr/bin/arm buildroot-linux-gnueabihf/g++:
mpi-dl;
(第一行是构建系统配置的
user config.jam
的唯一内容;我添加了第二行。此外,这里还调整了路径)

注意:我通过查看源代码和大量的尝试错误获得了bjam线

但是,任何干净的重建都将删除
output/build
目录,从而擦除这些更改


使用Buildroot交叉编译时,是否有一种“正确”的方法来启用Boost.MPI的编译?或者至少,在构建系统配置编译器之后,能够修补
user config.jam
文件?(请注意,路径取决于我的系统配置和目标主机)。

似乎您只需要调整
boost.mk
并将所需字符串添加到
user config.jam
中,或许还需要添加openmpi的依赖项。尽管我仍然建议将此问题发布到BR的邮件列表中。似乎您只需要调整
boost.mk
,并将所需字符串添加到
user config.jam
,或许还需要添加openmpi的依赖项。尽管我仍然建议将这个问题发布到BR的邮件列表中。