编译C++;使用Boost::mpi和Xcode 4的

编译C++;使用Boost::mpi和Xcode 4的,boost,compilation,xcode4.5,mpi,Boost,Compilation,Xcode4.5,Mpi,我尝试从Xcode4运行以下简单示例: #include <boost/mpi/environment.hpp> #include <boost/mpi/communicator.hpp> #include <iostream> namespace mpi = boost::mpi; int main(int argc, char* argv[]) { mpi::environment env(argc, argv); mpi::communicat

我尝试从Xcode4运行以下简单示例:

#include <boost/mpi/environment.hpp>
#include <boost/mpi/communicator.hpp>
#include <iostream>
namespace mpi = boost::mpi;

int main(int argc, char* argv[])
{
  mpi::environment env(argc, argv);
  mpi::communicator world;
  std::cout << "I am process " << world.rank() << " of " << world.size()
  << "." << std::endl;
  return 0;
}
它储存在

/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/LLVM GCC 4.2.xcplugin/Contents/Resources/mpicc.xcspec

所以这是可行的:

将二进制文件链接到:

libmpi_cxx.dylib
libmpi.dylib
libboost_mpi.dylib
libboost_serialization.dylib
将编译器(在“构建选项”下)更改为LLVM GCC 4.2(通过直接运行mpic++暗示,它报告正在内部使用LLVM GCC 4.2)


在targets、build Phase、compile sources下,添加编译器选项“-lm”以报告您需要链接到libm。@pyCthon指出了mpic++--showme:link,它揭示了允许它从命令行成功构建的最终库

您编译了Boost MPI吗?您需要将其与其他boost库分开编译。我已经编译并安装了BoostMPI,我有openmpi用于实际的mpi实现可能会将
sudo opensnoop-n Xcode | grep mpicc.xcspec
的输出更改为
mpic++
的输出,或者尝试链接您单独使用的任何版本的mpi,并使用clang或g++编译使用
mpic++--showme:link v
mpic++--showme:compile-v
libmpi_cxx.dylib
libmpi.dylib
libboost_mpi.dylib
libboost_serialization.dylib