C++ 在OSX中使用什么体系结构?
我完成了BoostMPI的安装,openmpi作为底层实现,并尝试编译一个简单的程序进行测试 我编译boost mpi库如下:C++ 在OSX中使用什么体系结构?,c++,xcode,macos,mpi,C++,Xcode,Macos,Mpi,我完成了BoostMPI的安装,openmpi作为底层实现,并尝试编译一个简单的程序进行测试 我编译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_serializati
./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++,将其传递到底层编译器。将地址模型=64
传递到bjam命令行,以创建一个x86_64 MPI库,您可以根据代码进行链接。或者将您的代码编译为x86(-arch i386
),以使用您以前编译的已经存在的x86 MPI库。代码应该可以正常工作(至少对我是这样)。您使用的是10.7还是10.6?我唯一一次遇到这个问题是在OS 10.6上强制使用64位操作系统,但我还没有尝试10.7,所以我不确定。