在OSX中使用什么架构?

时间:2012-02-19 22:49:32

标签: c++ xcode macos mpi

我用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中工作的最佳方法。

2 个答案:

答案 0 :(得分:0)

如果您想要i386版本,请将-arch i386传递给mpic ++,后者应将其传递给底层编译器。

答案 1 :(得分:0)

address-model=64传递给bjam命令行以创建可以链接到代码的x86_64 MPI库。或者将代码编译为x86(-arch i386)以使用先前编译的已经x86 MPI库。