C++11 ROS fuerte rosmake-std=c++;11编译错误

C++11 ROS fuerte rosmake-std=c++;11编译错误,c++11,ros,C++11,Ros,我试图编译一个节点,该节点使用一个需要c++11标志的库(它使用std::function和nullptr等特性) 这里是de outpulog: 但概括起来: from /usr/include/c++/4.8/bits/stl_algo.h:62, from /usr/include/c++/4.8/algorithm:62, from /usr/include/boost/math/tools/con

我试图编译一个节点,该节点使用一个需要c++11标志的库(它使用std::function和nullptr等特性)

这里是de outpulog:

但概括起来:

               from /usr/include/c++/4.8/bits/stl_algo.h:62,
               from /usr/include/c++/4.8/algorithm:62,
               from /usr/include/boost/math/tools/config.hpp:16,
               from /usr/include/boost/math/special_functions/round.hpp:13,
               from /opt/ros/fuerte/include/ros/time.h:58,
               from /opt/ros/fuerte/include/ros/ros.h:38,
               from /home/bardo91/programming/EC-SAFEMOBIL/ros/PatrollingCV/uav_vision/src/uav_vision_node.cpp:9:
 /usr/include/c++/4.8/bits/stl_construct.h: In instantiation of ‘void std::_Construct(_T1*, _Args&& ...) [with _T1 = actionlib_msgs::GoalStatus_<std::allocator<void> >; _Args = {actionlib_msgs::GoalStatus_<std::allocator<void> >&}]’:
   /usr/include/c++/4.8/bits/stl_uninitialized.h:75:53:   required from ‘static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = actionlib_msgs::GoalStatus_<std::allocator<void> >*; _ForwardIterator = actionlib_msgs::GoalStatus_<std::allocator<void> >*; bool _TrivialValueTypes = false]’

 /usr/include/c++/4.8/bits/stl_uninitialized.h:117:41:   required from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = actionlib_msgs::GoalStatus_<std::allocator<void> >*; _ForwardIterator = actionlib_msgs::GoalStatus_<std::allocator<void> >*]’
  /usr/include/c++/4.8/bits/stl_uninitialized.h:258:63:   required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = actionlib_msgs::GoalStatus_<std::allocator<void> >*; _ForwardIterator = actionlib_msgs::GoalStatus_<std::allocator<void> >*; _Tp = actionlib_msgs::GoalStatus_<std::allocator<void> >]’
from/usr/include/c++/4.8/bits/stl_algo.h:62,
来自/usr/include/c++/4.8/算法:62,
从/usr/include/boost/math/tools/config.hpp:16,
来自/usr/include/boost/math/special_functions/round.hpp:13,
from/opt/ros/fuerte/include/ros/time.h:58,
from/opt/ros/fuerte/include/ros/ros.h:38,
from/home/bardo91/programming/EC-SAFEMOBIL/ros/PatrollingCV/uav_vision/src/uav_vision_node.cpp:9:
/usr/include/c++/4.8/bits/stl_construct.h:在“void std::_construct(_T1*,_Args&&…[with _T1=actionlib_msgs::GoalStatus_u;_Args={actionlib_msgs::GoalStatus&}]的实例化中:
/usr/include/c++/4.8/bits/stl_uninitialized.h:75:53:来自“静态”转发迭代器std::__uninitialized_copy::_uninitialized_copy(_inputiator,_inputiator,_ForwardIterator,_ForwardIterator)[带_inputiator=actionlib_msgs::GoalStatus *.转发迭代器=actionlib msgs::GoalStatusboolvaluetypes=false]
/usr/include/c++/4.8/bits/stl_uninitialized.h:117:41:来自“_forwarditeratorstd::uninitialized_copy”(_InputIterator,_InputIterator,_ForwardIterator,_ForwardIterator,_ForwardIterator)[带_InputIterator=actionlib_msgs::GoalStatus_*]的需要
/usr/include/c++/4.8/bits/stl_uninitialized.h:258:63:从“_forwarditeratorstd::__uninitialized_copy_a”(_inputierator,_inputierator,_ForwardIterator,std::allocator&)[带_inputierator=actionlib_msgs::GoalStatus_*.\u ForwardIterator=actionlib msgs::GoalStatus.*
等等。。。它不仅是为图书馆,我想使用新的特点,C++,但我不知道怎么做才能修复它。有人能帮我吗


提前感谢

我已成功地在我的CMakeLists.txt文件中使用了以下行:

SET(CMAKE_CXX_FLAGS "-std=c++11")

这并不能解决问题。我使用具有相同效果的“rosbuild\u add\u compile\u flags(command\u uav\u node“-std=c++11”)”。错误来自于。这可能是因为我使用的是ROS fuerte,它可以在没有c++11标志的情况下编译吗?@Bardo91:你使用什么编译器?对于较旧的GCC版本(我已经安装了GCC-4.8。如果你问我什么编译器在使用“rosmake”,我不知道。我使用rosmake进行编译,就我而言,使用CmakeList(我在其中设置了标志)文件作为配置,并使用计算机的GCC编译器(应该是GCC-4.8)。