Невозможно скомпилировать код C++ с Boost и MPICH2
Я попытался запустить Boost MPI с mpich2 3.1.4 (скомпилировано из исходного кода). Но я считаю, что проблема в том, что зависимость Boost MPI от OpenMPI портится с mpich2 3.1.4.
Я получаю следующую подсказку при компиляции моего кода.
$ mpic++ -std=c++11 boost_mpi.cpp -lboost_system -lboost_mpi -lboost_serialization
/usr/bin/ld: warning: libmpi.so.1, needed by /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libboost_mpi.so, may conflict with libmpi.so.12
Это мой код
#include <iostream>
#include <string>
#include <queue>
#include "mpi.h"
#include <boost/algorithm/string.hpp>
#include <unordered_map>
#include "tf.cpp"
#include <boost/mpi.hpp>
#include <boost/serialization/string.hpp>
namespace mpi = boost::mpi;
int main(int argc, char* argv[]){
mpi::environment env(argc, argv);
mpi::communicator boost_world;
if (boost_world.rank() == 0) {
boost_world.send(1, 0, std::string("Hello"));
std::string msg;
boost_world.recv(1, 1, msg);
std::cout << msg << "!" << std::endl;
} else {
std::string msg;
boost_world.recv(0, 0, msg);
std::cout << msg << ", ";
std::cout.flush();
boost_world.send(0, 1, std::string("world"));
}
return 0;
}
Я вижу, что здесь была дана помощь по настройке альтернатив для mpi в Ubuntu. Но я не могу установить их, так как я скомпилировал свой код вручную.
Я использую Ubuntu 14.04 на 64-битной машине.
Заранее спасибо.