2012-08-27 92 views
0

編輯:解決,不正確的升壓設置/捂臉升壓-MPI的HelloWorld編譯問題

我一直在試圖安裝升壓MPI舊系統/集羣上。

安裝boost並使用bjam --with-mpi後,我試着編譯一個hello_world例子,它附帶了boost-mpi安裝教程。 我提供的MPI-自動配置與MPIC++的bjam,當我使用編譯如下:

/../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。

我對這個問題很困惑。任何幫助表示讚賞!

回答

0

這的確的意思是libboost_serialization.so是用較新版本的GCC編譯的。

您確定沒有安裝其他版本?您的locate數據庫是最新的嗎? which g++顯示什麼?

如果您在編譯命令中放置了-lstdc++最後一個,這有幫助嗎?由於liboost_serialization.so取決於libstdc++.so您應該正確訂購它們。

+0

找到可能不是最新的,因爲該羣集上的gcc版本是在5年前發佈的。其中g ++ 只是返回/ usr/bin/g ++,但它返回gcc版本4.1.2 放置-lstdC++ last也不會更改錯誤 – jdimarco218