Проблемы компиляции 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 Вы должны заказать их правильно.

Другие вопросы по тегам