编辑:已解决,错误的加速设置/ 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"
每个人只有3.4.8作为GLIBCXX的最新版本。
我对此问题感到困惑。任何帮助表示赞赏!
答案 0 :(得分:0)
这确实意味着libboost_serialization.so
是使用较新版本的GCC编译的。
您确定没有安装其他版本吗?您的locate
数据库是最新的吗? which g++
显示什么?
如果将-lstdc++
放在编译命令中,它会有帮助吗?由于liboost_serialization.so
取决于libstdc++.so
,您应该正确订购它们。