ROS Kinetic编译旧版本程序出现 error: ‘shared_ptr’ in namespace ‘std’ does not name a type

error: ‘shared_ptr’ in namespace ‘std’ does not name a type

今天在ROS-Kinetic版本中编译indigo版本编译通过的程序,出现了如下问题

/opt/ros/kinetic/include/moveit/macros/declare_ptr.h:53:16: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
   typedef std::shared_ptr Name##ConstPtr;

网上搜了解决办法如下:


用G++编译项目的时候发生标题上的错误,原因是,这是c++ 11标准的。在给g++传递命令行的时候加上-std=c++0x就行了。


我的cmakelists里面要这样改:

   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -std=c++0x")

 

 

references:

http://www.cmake.org/Wiki/CMake/Tutorials/C%2B%2B11Flags

http://stackoverflow.com/questions/12329226/a-short-c-file-and-makefile-i-can-make-in-the-shell-but-get-lots-of-error-wh

https://github.com/RobotLocomotion/drake/issues/92

你可能感兴趣的:(ROS)