在OSX中使用什么体系结构

What architecture to use in OSX?

本文关键字:什么 体系结构 OSX      更新时间:2023-10-16

我完成了以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中工作的最佳方法是什么。

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

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