デフォルトでは、 Buildroot でのクロスコンパイル時にパッケージはBR2_PACKAGE_BOOST_MPI
ビルドされません: MPI (OpenMPI など) の構成とライブラリを検出する必要があり、これが (buildroot 環境で) 自動的にできない場合、ビルド システムは Boost.MPI が取得したことを通知するだけです。スキップ:bjam
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 ;
(最初の行は、ビルド システムによって構成された唯一の内容ですuser-config.jam
。2 行目を追加しました。また、ここでパスが調整されました)。
注: mpi.jamのソースを調べて試行錯誤を繰り返し、その bjam 行を取得しました。
output/build
ただし、クリーンな再構築ではディレクトリが削除されるため、これらの変更は消去されます。
Buildroot でクロスコンパイルするときに Boost.MPI のコンパイルを有効にする「正しい」方法はありますか? または、少なくとも、user-config.jam
ビルド システムがコンパイラを構成した後にファイルにパッチを適用できますか? (パスはシステム構成とターゲット ホストによって異なることに注意してください)。