我用openmpi作为底层实现完成了boost mpi的安装,并尝试编译一个简单的程序进行测试。
我编译我的boost mpi库如下:
./bjam toolset=darwin architecture=x86 address-model=32 install
我用以下内容编译了我的mpi程序:
mpic++ -I/opt/boost_1_46_1/include mpi_play.cpp -L/opt/boost_1_46_1/lib -lboost_mpi -lboost_serialization
但它说
ld: warning: in /opt/boost_1_46_1/lib/libboost_mpi.dylib, file was built for i386 which is not the architecture being linked (x86_64)
我知道我使用的bjam命令是在i386中构建库。这是我在XCode中使用boost线程库所需要做的。那么,现在我不确定什么是使所有这些boost库和mpi库在mac中工作的最佳方法。
答案 0 :(得分:0)
如果您想要i386版本,请将-arch i386
传递给mpic ++,后者应将其传递给底层编译器。
答案 1 :(得分:0)
将address-model=64
传递给bjam命令行以创建可以链接到代码的x86_64 MPI库。或者将代码编译为x86(-arch i386
)以使用先前编译的已经x86 MPI库。