Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在OSX中使用什么体系结构?_C++_Xcode_Macos_Mpi - Fatal编程技术网

C++ 在OSX中使用什么体系结构?

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

我完成了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_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,所以我不确定。