0

編集: 解決済み、正しくないブースト設定 /facepalm

古いシステム/クラスターに boost-mpi をインストールしようとしています。

boost をインストールして bjam --with-mpi を使用した後、boost-mpi セットアップ チュートリアルに付属する hello_world の例をコンパイルしようとしました。mpic++ を使用して bjam の mpi-autoconfig を提供し、次を使用してコンパイルする場合:

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

ということで、bjamでビルドしたときにGLIBCXX3.4.9が見つかったに違いないと推測したのですが、

locate libstdc++.so

使った

"strings /path/to/libstdc++.so | grep LIBCXX" 

そして、それぞれに GLIBCXX の最新バージョンとして 3.4.8 しかありませんでした。

私はこの問題についてかなり混乱しています。どんな助けでも大歓迎です!

4

1 に答える 1

0

これは実際libboost_serialization.so、新しいバージョンの GCC でコンパイルされたことを意味します。

別のバージョンがインストールされていませんか? locateデータベースは最新ですか?何がwhich g++表示されますか?

-lstdc++コンパイルコマンドの最後に入れると役に立ちますか? liboost_serialization.so依存するのでlibstdc++.so、正しく注文する必要があります。

于 2012-08-28T00:00:15.640 に答える