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;
}
libboost_mpi と libboost_serialization を Xcode に追加し、デフォルトの LLVM を使用してコンパイルすると、次のように返されます。
/usr/local/include/boost/mpi/communicator.hpp:1329:9: エラー: 'boost::mpi::communicator' の暗黙的に削除されたコピー コンストラクターの呼び出し: comm(comm)、source(source)、tag (タグ)、ia(通信)、値(値) ^ ~~~~
ただし、次を使用してコンパイルおよび実行できます
mpic++ -I/usr/local/include main.cpp -L/usr/local/lib -lboost_mpi -lboost_serialization
mpic++ は LLVM を呼び出しているようですが:
$ mpic++
i686-apple-darwin11-llvm-g++-4.2: 入力ファイルがありません
とにかく、Xcode 4 のコンパイラ オプションとして mpic++ を追加してみました。
$ sudo opensnoop -n Xcode | grep mpicc.xcspec
spec ファイルが Xcode によってロードされていることを確認しますが、MPICC オプションは表示されません。私の仕様ファイルはかなり単純です:
/**
Xcode Compiler Specification for MPICC
*/
{ Type = Compiler;
Identifier = com.apple.compilers.mpicc;
BasedOn = com.apple.compilers.gcc.4_2;
Name = “MPICC”;
Version = “Default”;
Description = “MPI GNU C/C++ Compiler 4.0″;
ExecPath = “/usr/local/bin/mpicc”;
PrecompStyle = pch;
}
そして、それはに保存されています
/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/LLVM GCC 4.2.xcplugin/Contents/Resources/mpicc.xcspec