Проблемы компиляции HelloWorld в Boost-MPI
РЕДАКТИРОВАТЬ: решено, неверная настройка буста / лицевой панели
Я пытался установить boost-mpi на старой системе / кластере.
После установки boost и использования bjam --with-mpi я попытался скомпилировать пример hello_world, поставляемый с руководством по установке boost-mpi. Я поставил mpi-autoconfig для bjam с mpiC++, и когда я компилировал, используя следующее:
/../gnu/bin/mpic++ -I/home/user/boost_1_51_0 communicator.cpp -lstdc++ -L/home/user/boost_1_51_0/stage/lib -lboost_mpi -lboost_serialization
Я получаю следующие ошибки:
libboost_serialization.so: undefined reference to `std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::_M_extract<unsigned short>(unsigned short&)@GLIBCXX_3.4.9'
Поэтому я догадался, что GLIBCXX3.4.9 должен быть найден при сборке с bjam, но после
locate libstdc++.so
я использовал
"strings /path/to/libstdc++.so | grep LIBCXX"
и у каждого была только 3.4.8 как последняя версия GLIBCXX.
Я довольно смущен этой проблемой. Любая помощь приветствуется!
1 ответ
Это действительно значит libboost_serialization.so
был скомпилирован с более новой версией GCC.
Вы уверены, что у вас не установлена другая версия? Твой locate
база данных в актуальном состоянии? Что значит which g++
шоу?
Поможет ли это, если вы положите -lstdc++
последний в команде компиляции? поскольку liboost_serialization.so
зависит от libstdc++.so
Вы должны заказать их правильно.