0
我試圖用MPI用C++升壓用下面的代碼:無法編譯簡單的升壓MPI例如
#include <boost/mpi/environment.hpp>
#include <boost/mpi/communicator.hpp>
#include <iostream>
namespace mpi = boost::mpi;
int main()
{
mpi::environment env;
mpi::communicator world;
std::cout << "I am process " << world.rank() << "on " << world.size() << "." << std::endl;
return 0;
}
而且我升壓MPI編譯和安裝:
~ ls /usr/local/include/boost | grep mpi
mpi
mpi.hpp
~ ls /usr/local/lib | grep mpi
libboost_mpi.a
libboost_mpi.so
libboost_mpi.so.1.62.0
~ ls /usr/local/lib | grep serialization
libboost_serialization.a
libboost_serialization.so
libboost_serialization.so.1.62.0
libboost_wserialization.a
libboost_wserialization.so
libboost_wserialization.so.1.62.0
編譯使用
mpic++ -L/usr/local/lib -I/usr/local/include/boost/mpi -lboost_mpi-gcc-mt-1_35 -lboost_serialization MPIBoostBindingExample.cpp -o MPIBoostBindingExample
但仍然有錯誤說:
/tmp/ccKVwnKR.o: In function `main':
MPIBoostBindingExample.cpp:(.text+0x27): undefined reference to `boost::mpi::environment::environment(bool)'
MPIBoostBindingExample.cpp:(.text+0x33): undefined reference to `boost::mpi::communicator::communicator()'
MPIBoostBindingExample.cpp:(.text+0x3f): undefined reference to `boost::mpi::communicator::size() const'
MPIBoostBindingExample.cpp:(.text+0x4d): undefined reference to `boost::mpi::communicator::rank() const'
MPIBoostBindingExample.cpp:(.text+0xb8): undefined reference to `boost::mpi::environment::~environment()'
MPIBoostBindingExample.cpp:(.text+0xeb): undefined reference to `boost::mpi::environment::~environment()'
collect2: error: ld returned 1 exit status
任何幫助?
它的工作原理 - 這花了我整整一天的編譯和刪除並重新安裝'boost' ...也許我不會被切成軟件開發... –
不要絕望,我們都已經那裏。關鍵是要從編譯器的錯誤消息中學習......或者在這種情況下是鏈接器 –