Skip to content

Build Error on Ubuntu 18.04 with Boost v1.65.1 #128

@ssnover

Description

@ssnover

Hello,

I'm currently trying to follow the instructions for compiling the baxter_simulator ROS package on this page: http://sdk.rethinkrobotics.com/wiki/Simulator_Installation

After running catkin_make, I get an error during compilation:

[ 94%] Building CXX object baxter_simulator/baxter_sim_io/CMakeFiles/baxter_sim_io.dir/qrc_sim_io.cxx.o
/home/ssnover/catkin_ws/src/baxter_simulator/baxter_sim_kinematics/src/arm_kinematics.cpp: In member function ‘bool arm_kinematics::Kinematics::readJoints(urdf::Model&)’:
/home/ssnover/catkin_ws/src/baxter_simulator/baxter_sim_kinematics/src/arm_kinematics.cpp:248:65: error: conversion from ‘urdf::LinkConstSharedPtr {aka std::shared_ptr<const urdf::Link>}’ to non-scalar type ‘boost::shared_ptr<const urdf::Link>’ requested
   boost::shared_ptr<const urdf::Link> link = robot_model.getLink(tip_name);
                                              ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/ssnover/catkin_ws/src/baxter_simulator/baxter_sim_kinematics/src/arm_kinematics.cpp:255:60: error: no match for ‘operator=’ (operand types are ‘boost::shared_ptr<const urdf::Joint>’ and ‘urdf::JointConstSharedPtr {aka std::shared_ptr<const urdf::Joint>}’)
       joint = robot_model.getJoint(link->parent_joint->name);
                                                            ^
In file included from /usr/include/boost/shared_ptr.hpp:17:0,
                 from /opt/ros/melodic/include/ros/forwards.h:37,
                 from /opt/ros/melodic/include/ros/common.h:37,
                 from /opt/ros/melodic/include/ros/ros.h:43,
                 from /home/ssnover/catkin_ws/src/baxter_simulator/baxter_sim_kinematics/src/arm_kinematics.cpp:35:
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:18: note: candidate: boost::shared_ptr<T>& boost::shared_ptr<T>::operator=(const boost::shared_ptr<T>&) [with T = const urdf::Joint]
     shared_ptr & operator=( shared_ptr const & r ) BOOST_SP_NOEXCEPT
                  ^~~~~~~~

It appears that one of the dependencies has updated to use modern C++ std::shared_ptr instead of boost::shared_ptr and it broke compilation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions