编译C++;使用Boost::mpi和Xcode 4的
我尝试从Xcode4运行以下简单示例:编译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
#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