问题描述:
使用ros melodic版本 编译程序,遇到报错如下:
error: ‘tf2_buffer_’ was not declared in this scope
inline tf2_ros::Buffer& getBuffer() { return tf2_buffer_; }
^~~~~~~~~~~
解决方法:
经查询,发现是ros melodic版本对该处进行了修改,与之前版本不同,用 tf2_buffer_ptr_替代了tf2_buffer_ ,所以需要修改程序。
参考:Compile Error Melodic due to tf change
//原来的写法:
inline tf2_ros::Buffer& getBuffer() { return tf2_buffer_; }
//修改为:
inline std::shared_ptr<tf2_ros::Buffer> &getBuffer() {return tf2_buffer_ptr_;}