Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build fail on Noetic #166

Closed
RaduCorcodel opened this issue Jul 6, 2021 · 4 comments
Closed

Build fail on Noetic #166

RaduCorcodel opened this issue Jul 6, 2021 · 4 comments

Comments

@RaduCorcodel
Copy link
Contributor

Fresh install of Ubuntu20 and fresh install of ROS Noetic. I cloned the repo and switched to noetic-devel branch, then followed the build instructions exactly. Tried to build ros_kortex and during build I get the following sets of errors:

 [ 98%] Building CXX object ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/deviceconfig_ros_converter.cpp.o
In file included from /usr/include/ignition/math6/ignition/math/Quaternion.hh:20,
                 from /usr/include/ignition/math6/ignition/math/Pose3.hh:20,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:23,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/disable_link_plugin.h:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/disable_link_plugin.cpp:23:
/usr/include/ignition/math6/ignition/math/Helpers.hh:40:13: warning: variable templates only available with ‘-std=c++14’ or ‘-std=gnu++14’
   40 | constexpr T IGN_MASSMATRIX3_DEFAULT_TOLERANCE = T(10);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/ignition/math6/ignition/math/Helpers.hh: In function ‘std::chrono::_V2::steady_clock::duration ignition::math::v6::stringToDuration(const string&)’:
/usr/include/ignition/math6/ignition/math/Helpers.hh:990:28: error: ‘chrono_literals’ is not a namespace-name
  990 |       using namespace std::chrono_literals;
      |                            ^~~~~~~~~~~~~~~
/usr/include/ignition/math6/ignition/math/Helpers.hh: In function ‘std::chrono::_V2::steady_clock::time_point ignition::math::v6::stringToTimePoint(const string&)’:
/usr/include/ignition/math6/ignition/math/Helpers.hh:1032:28: error: ‘chrono_literals’ is not a namespace-name
 1032 |       using namespace std::chrono_literals;
      |                            ^~~~~~~~~~~~~~~
/usr/include/ignition/math6/ignition/math/Helpers.hh:1033:56: error: unable to find numeric literal operator ‘operator""s’
 1033 |       std::chrono::steady_clock::time_point timePoint{-1s};
      |                                                        ^~
/usr/include/ignition/math6/ignition/math/Helpers.hh:1033:56: note: use ‘-fext-numeric-literals’ to enable more built-in suffixes
/usr/include/ignition/math6/ignition/math/Helpers.hh:1033:58: error: no matching function for call to ‘std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >::time_point(<brace-enclosed initializer list>)’
 1033 |       std::chrono::steady_clock::time_point timePoint{-1s};
      |                                                          ^
In file included from /usr/include/c++/9/mutex:39,
                 from /usr/include/boost/system/detail/std_interoperability.hpp:13,
                 from /usr/include/boost/system/error_code.hpp:959,
                 from /usr/include/boost/system/system_error.hpp:11,
                 from /usr/include/boost/thread/exceptions.hpp:22,
                 from /usr/include/boost/thread/pthread/mutex.hpp:14,
                 from /usr/include/boost/thread/mutex.hpp:16,
                 from /opt/ros/noetic/include/ros/publisher.h:36,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/disable_link_plugin.h:27,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/disable_link_plugin.cpp:23:
/usr/include/c++/9/chrono:643:14: note: candidate: ‘template<class _Dur2, class> constexpr std::chrono::time_point<_Clock, _Dur>::time_point(const std::chrono::time_point<_Clock, _Dur2>&)’
  643 |    constexpr time_point(const time_point<clock, _Dur2>& __t)
      |              ^~~~~~~~~~
/usr/include/c++/9/chrono:643:14: note:   template argument deduction/substitution failed:
/usr/include/c++/9/chrono:636:21: note: candidate: ‘constexpr std::chrono::time_point<_Clock, _Dur>::time_point(const duration&) [with _Clock = std::chrono::_V2::steady_clock; _Dur = std::chrono::duration<long int, std::ratio<1, 1000000000> >; std::chrono::time_point<_Clock, _Dur>::duration = std::chrono::duration<long int, std::ratio<1, 1000000000> >]’
  636 |  constexpr explicit time_point(const duration& __dur)
      |                     ^~~~~~~~~~
/usr/include/c++/9/chrono:636:21: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/chrono:633:12: note: candidate: ‘constexpr std::chrono::time_point<_Clock, _Dur>::time_point() [with _Clock = std::chrono::_V2::steady_clock; _Dur = std::chrono::duration<long int, std::ratio<1, 1000000000> >]’
  633 |  constexpr time_point() : __d(duration::zero())
      |            ^~~~~~~~~~
/usr/include/c++/9/chrono:633:12: note:   candidate expects 0 arguments, 1 provided
/usr/include/c++/9/chrono:626:14: note: candidate: ‘constexpr std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >::time_point(const std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >&)’
  626 |       struct time_point
      |              ^~~~~~~~~~
/usr/include/c++/9/chrono:626:14: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/chrono:626:14: note: candidate: ‘constexpr std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >::time_point(std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >&&)’
/usr/include/c++/9/chrono:626:14: note:   conversion of argument 1 would be ill-formed:
In file included from /usr/include/ignition/math6/ignition/math/Quaternion.hh:20,
                 from /usr/include/ignition/math6/ignition/math/Pose3.hh:20,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:23,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/mimic_joint_plugin.h:36,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/mimic_joint_plugin.cpp:23:
/usr/include/ignition/math6/ignition/math/Helpers.hh:40:13: warning: variable templates only available with ‘-std=c++14’ or ‘-std=gnu++14’
   40 | constexpr T IGN_MASSMATRIX3_DEFAULT_TOLERANCE = T(10);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/ignition/math6/ignition/math/Helpers.hh: In function ‘std::chrono::_V2::steady_clock::duration ignition::math::v6::stringToDuration(const string&)’:
/usr/include/ignition/math6/ignition/math/Helpers.hh:990:28: error: ‘chrono_literals’ is not a namespace-name
  990 |       using namespace std::chrono_literals;
      |                            ^~~~~~~~~~~~~~~
In file included from /usr/include/ignition/math6/ignition/math.hh:30,
                 from /usr/include/sdformat-9.5/sdf/Param.hh:33,
                 from /usr/include/sdformat-9.5/sdf/Element.hh:28,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:25,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/disable_link_plugin.h:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/disable_link_plugin.cpp:23:
/usr/include/ignition/math6/ignition/math/Capsule.hh: At global scope:
/usr/include/ignition/math6/ignition/math/Capsule.hh:91:20: error: ‘optional’ in namespace ‘std’ does not name a template type
   91 |       public: std::optional< MassMatrix3<Precision> > MassMatrix() const;
      |                    ^~~~~~~~
/usr/include/ignition/math6/ignition/math/Capsule.hh:91:15: note: ‘std::optional’ is only available from C++17 onwards
   91 |       public: std::optional< MassMatrix3<Precision> > MassMatrix() const;
      |               ^~~
In file included from /usr/include/ignition/math6/ignition/math/Capsule.hh:149,
                 from /usr/include/ignition/math6/ignition/math.hh:30,
                 from /usr/include/sdformat-9.5/sdf/Param.hh:33,
                 from /usr/include/sdformat-9.5/sdf/Element.hh:28,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:25,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/disable_link_plugin.h:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/disable_link_plugin.cpp:23:
/usr/include/ignition/math6/ignition/math/detail/Capsule.hh:100:6: error: ‘optional’ in namespace ‘std’ does not name a template type
  100 | std::optional< MassMatrix3<T> > Capsule<T>::MassMatrix() const
      |      ^~~~~~~~
/usr/include/ignition/math6/ignition/math/detail/Capsule.hh:100:1: note: ‘std::optional’ is only available from C++17 onwards
  100 | std::optional< MassMatrix3<T> > Capsule<T>::MassMatrix() const
      | ^~~
/usr/include/ignition/math6/ignition/math/Helpers.hh: In function ‘std::chrono::_V2::steady_clock::time_point ignition::math::v6::stringToTimePoint(const string&)’:
/usr/include/ignition/math6/ignition/math/Helpers.hh:1032:28: error: ‘chrono_literals’ is not a namespace-name
 1032 |       using namespace std::chrono_literals;
      |                            ^~~~~~~~~~~~~~~
/usr/include/ignition/math6/ignition/math/Helpers.hh:1033:56: error: unable to find numeric literal operator ‘operator""s’
 1033 |       std::chrono::steady_clock::time_point timePoint{-1s};
      |                                                        ^~
/usr/include/ignition/math6/ignition/math/Helpers.hh:1033:56: note: use ‘-fext-numeric-literals’ to enable more built-in suffixes
/usr/include/ignition/math6/ignition/math/Helpers.hh:1033:58: error: no matching function for call to ‘std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >::time_point(<brace-enclosed initializer list>)’
 1033 |       std::chrono::steady_clock::time_point timePoint{-1s};
      |                                                          ^
In file included from /usr/include/c++/9/mutex:39,
                 from /usr/include/boost/system/detail/std_interoperability.hpp:13,
                 from /usr/include/boost/system/error_code.hpp:959,
                 from /usr/include/boost/system/system_error.hpp:11,
                 from /usr/include/boost/thread/exceptions.hpp:22,
                 from /usr/include/boost/thread/pthread/mutex.hpp:14,
                 from /usr/include/boost/thread/mutex.hpp:16,
                 from /opt/ros/noetic/include/ros/publisher.h:36,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/mimic_joint_plugin.h:27,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/mimic_joint_plugin.cpp:23:
/usr/include/c++/9/chrono:643:14: note: candidate: ‘template<class _Dur2, class> constexpr std::chrono::time_point<_Clock, _Dur>::time_point(const std::chrono::time_point<_Clock, _Dur2>&)’
  643 |    constexpr time_point(const time_point<clock, _Dur2>& __t)
      |              ^~~~~~~~~~
/usr/include/c++/9/chrono:643:14: note:   template argument deduction/substitution failed:
/usr/include/c++/9/chrono:636:21: note: candidate: ‘constexpr std::chrono::time_point<_Clock, _Dur>::time_point(const duration&) [with _Clock = std::chrono::_V2::steady_clock; _Dur = std::chrono::duration<long int, std::ratio<1, 1000000000> >; std::chrono::time_point<_Clock, _Dur>::duration = std::chrono::duration<long int, std::ratio<1, 1000000000> >]’
  636 |  constexpr explicit time_point(const duration& __dur)
      |                     ^~~~~~~~~~
/usr/include/c++/9/chrono:636:21: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/chrono:633:12: note: candidate: ‘constexpr std::chrono::time_point<_Clock, _Dur>::time_point() [with _Clock = std::chrono::_V2::steady_clock; _Dur = std::chrono::duration<long int, std::ratio<1, 1000000000> >]’
  633 |  constexpr time_point() : __d(duration::zero())
      |            ^~~~~~~~~~
/usr/include/c++/9/chrono:633:12: note:   candidate expects 0 arguments, 1 provided
/usr/include/c++/9/chrono:626:14: note: candidate: ‘constexpr std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >::time_point(const std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >&)’
  626 |       struct time_point
      |              ^~~~~~~~~~
/usr/include/c++/9/chrono:626:14: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/9/chrono:626:14: note: candidate: ‘constexpr std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >::time_point(std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >&&)’
/usr/include/c++/9/chrono:626:14: note:   conversion of argument 1 would be ill-formed:
In file included from /usr/include/ignition/math6/ignition/math.hh:34,
                 from /usr/include/sdformat-9.5/sdf/Param.hh:33,
                 from /usr/include/sdformat-9.5/sdf/Element.hh:28,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:25,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/disable_link_plugin.h:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/disable_link_plugin.cpp:23:
/usr/include/ignition/math6/ignition/math/Ellipsoid.hh:77:20: error: ‘optional’ in namespace ‘std’ does not name a template type
   77 |       public: std::optional< MassMatrix3<Precision> > MassMatrix() const;
      |                    ^~~~~~~~
/usr/include/ignition/math6/ignition/math/Ellipsoid.hh:77:15: note: ‘std::optional’ is only available from C++17 onwards
   77 |       public: std::optional< MassMatrix3<Precision> > MassMatrix() const;
      |               ^~~
In file included from /usr/include/ignition/math6/ignition/math/Ellipsoid.hh:132,
                 from /usr/include/ignition/math6/ignition/math.hh:34,
                 from /usr/include/sdformat-9.5/sdf/Param.hh:33,
                 from /usr/include/sdformat-9.5/sdf/Element.hh:28,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:25,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/disable_link_plugin.h:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/disable_link_plugin.cpp:23:
/usr/include/ignition/math6/ignition/math/detail/Ellipsoid.hh:77:6: error: ‘optional’ in namespace ‘std’ does not name a template type
   77 | std::optional< MassMatrix3<T> > Ellipsoid<T>::MassMatrix() const
      |      ^~~~~~~~
/usr/include/ignition/math6/ignition/math/detail/Ellipsoid.hh:77:1: note: ‘std::optional’ is only available from C++17 onwards
   77 | std::optional< MassMatrix3<T> > Ellipsoid<T>::MassMatrix() const
      | ^~~
In file included from /usr/include/ignition/math6/ignition/math.hh:30,
                 from /usr/include/sdformat-9.5/sdf/Param.hh:33,
                 from /usr/include/sdformat-9.5/sdf/Element.hh:28,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:25,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/mimic_joint_plugin.h:36,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/mimic_joint_plugin.cpp:23:
/usr/include/ignition/math6/ignition/math/Capsule.hh: At global scope:
/usr/include/ignition/math6/ignition/math/Capsule.hh:91:20: error: ‘optional’ in namespace ‘std’ does not name a template type
   91 |       public: std::optional< MassMatrix3<Precision> > MassMatrix() const;
      |                    ^~~~~~~~
/usr/include/ignition/math6/ignition/math/Capsule.hh:91:15: note: ‘std::optional’ is only available from C++17 onwards
   91 |       public: std::optional< MassMatrix3<Precision> > MassMatrix() const;
      |               ^~~
In file included from /usr/include/ignition/math6/ignition/math/Capsule.hh:149,
                 from /usr/include/ignition/math6/ignition/math.hh:30,
                 from /usr/include/sdformat-9.5/sdf/Param.hh:33,
                 from /usr/include/sdformat-9.5/sdf/Element.hh:28,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:25,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/mimic_joint_plugin.h:36,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/mimic_joint_plugin.cpp:23:
/usr/include/ignition/math6/ignition/math/detail/Capsule.hh:100:6: error: ‘optional’ in namespace ‘std’ does not name a template type
  100 | std::optional< MassMatrix3<T> > Capsule<T>::MassMatrix() const
      |      ^~~~~~~~
/usr/include/ignition/math6/ignition/math/detail/Capsule.hh:100:1: note: ‘std::optional’ is only available from C++17 onwards
  100 | std::optional< MassMatrix3<T> > Capsule<T>::MassMatrix() const
      | ^~~
In file included from /usr/include/ignition/math6/ignition/math.hh:34,
                 from /usr/include/sdformat-9.5/sdf/Param.hh:33,
                 from /usr/include/sdformat-9.5/sdf/Element.hh:28,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:25,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/mimic_joint_plugin.h:36,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/mimic_joint_plugin.cpp:23:
/usr/include/ignition/math6/ignition/math/Ellipsoid.hh:77:20: error: ‘optional’ in namespace ‘std’ does not name a template type
   77 |       public: std::optional< MassMatrix3<Precision> > MassMatrix() const;
      |                    ^~~~~~~~
/usr/include/ignition/math6/ignition/math/Ellipsoid.hh:77:15: note: ‘std::optional’ is only available from C++17 onwards
   77 |       public: std::optional< MassMatrix3<Precision> > MassMatrix() const;
      |               ^~~
In file included from /usr/include/ignition/math6/ignition/math/Ellipsoid.hh:132,
                 from /usr/include/ignition/math6/ignition/math.hh:34,
                 from /usr/include/sdformat-9.5/sdf/Param.hh:33,
                 from /usr/include/sdformat-9.5/sdf/Element.hh:28,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:25,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/mimic_joint_plugin.h:36,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/mimic_joint_plugin.cpp:23:
/usr/include/ignition/math6/ignition/math/detail/Ellipsoid.hh:77:6: error: ‘optional’ in namespace ‘std’ does not name a template type
   77 | std::optional< MassMatrix3<T> > Ellipsoid<T>::MassMatrix() const
      |      ^~~~~~~~
/usr/include/ignition/math6/ignition/math/detail/Ellipsoid.hh:77:1: note: ‘std::optional’ is only available from C++17 onwards
   77 | std::optional< MassMatrix3<T> > Ellipsoid<T>::MassMatrix() const
      | ^~~
In file included from /usr/include/sdformat-9.5/sdf/Element.hh:28,
                 from /usr/include/sdformat-9.5/sdf/Actor.hh:25,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/disable_link_plugin.h:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/disable_link_plugin.cpp:23:
/usr/include/sdformat-9.5/sdf/Param.hh:72:57: error: expected constructor, destructor, or type conversion before ‘;’ token
   72 |   template<class T> ParamStreamer(T) -> ParamStreamer<T>;
      |                                                         ^
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: error: ‘variant’ is not a member of ‘std’
   83 |                            ParamStreamer<std::variant<Ts...>> sv)
      |                                               ^~~~~~~
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: note: ‘std::variant’ is only available from C++17 onwards
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: error: ‘variant’ is not a member of ‘std’
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: note: ‘std::variant’ is only available from C++17 onwards
/usr/include/sdformat-9.5/sdf/Param.hh:83:57: error: expected parameter pack before ‘...’
   83 |                            ParamStreamer<std::variant<Ts...>> sv)
      |                                                         ^~~
/usr/include/sdformat-9.5/sdf/Param.hh:83:57: error: template argument 1 is invalid
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: error: ‘variant’ is not a member of ‘std’
   83 |                            ParamStreamer<std::variant<Ts...>> sv)
      |                                               ^~~~~~~
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: note: ‘std::variant’ is only available from C++17 onwards
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: error: ‘variant’ is not a member of ‘std’
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: note: ‘std::variant’ is only available from C++17 onwards
/usr/include/sdformat-9.5/sdf/Param.hh:83:57: error: expected parameter pack before ‘...’
   83 |                            ParamStreamer<std::variant<Ts...>> sv)
      |                                                         ^~~
/usr/include/sdformat-9.5/sdf/Param.hh:83:60: error: template argument 1 is invalid
   83 |                            ParamStreamer<std::variant<Ts...>> sv)
      |                                                            ^~
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: error: ‘variant’ is not a member of ‘std’
   83 |                            ParamStreamer<std::variant<Ts...>> sv)
      |                                               ^~~~~~~
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: note: ‘std::variant’ is only available from C++17 onwards
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: error: ‘variant’ is not a member of ‘std’
/usr/include/sdformat-9.5/sdf/Param.hh:83:47: note: ‘std::variant’ is only available from C++17 onwards
/usr/include/sdformat-9.5/sdf/Param.hh:83:57: error: expected parameter pack before ‘...’
   83 |                            ParamStreamer<std::variant<Ts...>> sv)
      |                                                         ^~~
/usr/include/sdformat-9.5/sdf/Param.hh:83:60: error: template argument 1 is invalid
   83 |                            ParamStreamer<std::variant<Ts...>> sv)
      |                                                            ^~
/usr/include/sdformat-9.5/sdf/Param.hh:83:28: error: ‘ParamStreamer’ is not a type
   83 |                            ParamStreamer<std::variant<Ts...>> sv)
      |                            ^~~~~~~~~~~~~
/usr/include/sdformat-9.5/sdf/Param.hh:83:41: error: expected ‘,’ or ‘...’ before ‘<’ token
   83 |                            ParamStreamer<std::variant<Ts...>> sv)
      |                                         ^
/usr/include/sdformat-9.5/sdf/Param.hh: In function ‘std::ostream& sdf::v9::operator<<(std::ostream&, int)’:
/usr/include/sdformat-9.5/sdf/Param.hh:85:10: error: ‘visit’ is not a member of ‘std’
   85 |     std::visit([&os](auto const &v)
      |          ^~~~~
/usr/include/sdformat-9.5/sdf/Param.hh:85:10: note: ‘std::visit’ is only available from C++17 onwards
/usr/include/sdformat-9.5/sdf/Param.hh:85:22: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
   85 |     std::visit([&os](auto const &v)
      |                      ^~~~
/usr/include/sdformat-9.5/sdf/Param.hh: In lambda function:
/usr/include/sdformat-9.5/sdf/Param.hh:87:28: error: missing template arguments before ‘{’ token
   87 |         os << ParamStreamer{v};
      |                            ^
/usr/include/sdformat-9.5/sdf/Param.hh: In function ‘std::ostream& sdf::v9::operator<<(std::ostream&, int)’:
/usr/include/sdformat-9.5/sdf/Param.hh:88:10: error: ‘sv’ was not declared in this scope
   88 |       }, sv.val);
      |          ^~
/usr/include/sdformat-9.5/sdf/Param.hh: At global scope:
/usr/include/sdformat-9.5/sdf/Param.hh:173:30: error: ‘std::any’ has not been declared
  173 |     public: bool GetAny(std::any &_anyVal) const;
      |                              ^~~
/usr/include/sdformat-9.5/sdf/Param.hh:242:32: error: ‘any’ is not a member of ‘std’
  242 |     public: std::function<std::any ()> updateFunc;
      |                                ^~~
/usr/include/sdformat-9.5/sdf/Param.hh:242:32: note: ‘std::any’ is only available from C++17 onwards
/usr/include/sdformat-9.5/sdf/Param.hh:242:32: error: ‘any’ is not a member of ‘std’
/usr/include/sdformat-9.5/sdf/Param.hh:242:32: note: ‘std::any’ is only available from C++17 onwards
/usr/include/sdformat-9.5/sdf/Param.hh:242:38: error: template argument 1 is invalid
  242 |     public: std::function<std::any ()> updateFunc;
      |                                      ^
/usr/include/sdformat-9.5/sdf/Param.hh:246:26: error: ‘variant’ in namespace ‘std’ does not name a template type
  246 |     public: typedef std::variant<bool, char, std::string, int, std::uint64_t,
      |                          ^~~~~~~
/usr/include/sdformat-9.5/sdf/Param.hh:246:21: note: ‘std::variant’ is only available from C++17 onwards
  246 |     public: typedef std::variant<bool, char, std::string, int, std::uint64_t,
      |                     ^~~
/usr/include/sdformat-9.5/sdf/Param.hh:257:13: error: ‘ParamVariant’ does not name a type
  257 |     public: ParamVariant value;
      |             ^~~~~~~~~~~~
/usr/include/sdformat-9.5/sdf/Param.hh:260:13: error: ‘ParamVariant’ does not name a type
  260 |     public: ParamVariant defaultValue;
      |             ^~~~~~~~~~~~
/usr/include/sdformat-9.5/sdf/Param.hh: In member function ‘bool sdf::v9::Param::Get(T&) const’:
/usr/include/sdformat-9.5/sdf/Param.hh:298:69: error: ‘class sdf::v9::ParamPrivate’ has no member named ‘value’
  298 |         std::string strValue = std::get<std::string>(this->dataPtr->value);
      |                                                                     ^~~~~
/usr/include/sdformat-9.5/sdf/Param.hh:318:25: error: ‘get_if’ is not a member of ‘std’; did you mean ‘get_time’?
  318 |         T *value = std::get_if<T>(&this->dataPtr->value);
      |                         ^~~~~~
      |                         get_time
/usr/include/sdformat-9.5/sdf/Param.hh:318:33: error: expected primary-expression before ‘>’ token
  318 |         T *value = std::get_if<T>(&this->dataPtr->value);
      |                                 ^
/usr/include/sdformat-9.5/sdf/Param.hh:318:51: error: ‘class sdf::v9::ParamPrivate’ has no member named ‘value’
  318 |         T *value = std::get_if<T>(&this->dataPtr->value);
      |                                                   ^~~~~
/usr/include/sdformat-9.5/sdf/Param.hh:324:30: error: missing template arguments before ‘{’ token
  324 |           ss << ParamStreamer{this->dataPtr->value};
      |                              ^
/usr/include/sdformat-9.5/sdf/Param.hh: In member function ‘bool sdf::v9::Param::GetDefault(T&) const’:
/usr/include/sdformat-9.5/sdf/Param.hh:349:26: error: missing template arguments before ‘{’ token
  349 |       ss << ParamStreamer{this->dataPtr->defaultValue};
      |                          ^
/usr/include/sdformat-9.5/sdf/Param.hh: In member function ‘bool sdf::v9::Param::IsType() const’:
/usr/include/sdformat-9.5/sdf/Param.hh:369:17: error: ‘holds_alternative’ is not a member of ‘std’
  369 |     return std::holds_alternative<Type>(this->dataPtr->value);
      |                 ^~~~~~~~~~~~~~~~~
/usr/include/sdformat-9.5/sdf/Param.hh:369:39: error: expected primary-expression before ‘>’ token
  369 |     return std::holds_alternative<Type>(this->dataPtr->value);
      |                                       ^
/usr/include/sdformat-9.5/sdf/Param.hh:369:56: error: ‘class sdf::v9::ParamPrivate’ has no member named ‘value’
  369 |     return std::holds_alternative<Type>(this->dataPtr->value);
      |                                                        ^~~~~
In file included from /usr/include/sdformat-9.5/sdf/Actor.hh:25,
                 from /usr/include/sdformat-9.5/sdf/sdf.hh:2,
                 from /usr/include/gazebo-11/gazebo/common/Plugin.hh:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/include/roboticsgroup_gazebo_plugins/disable_link_plugin.h:33,
                 from /homes/corcodel/ws_kortex/src/ros_kortex/third_party/roboticsgroup_gazebo_plugins/src/disable_link_plugin.cpp:23:
/usr/include/sdformat-9.5/sdf/Element.hh: At global scope:
/usr/include/sdformat-9.5/sdf/Element.hh:237:18: error: ‘any’ in namespace ‘std’ does not name a type
  237 |     public: std::any GetAny(const std::string &_key = "") const;
      |                  ^~~
/usr/include/sdformat-9.5/sdf/Element.hh:237:13: note: ‘std::any’ is only available from C++17 onwards
  237 |     public: std::any GetAny(const std::string &_key = "") const;
      |             ^~~
^Cmake[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:271: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/deviceconfig_ros_converter.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:63: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/actuatorconfig_proto_converter.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:167: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/basecyclic_proto_converter.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_examples/CMakeFiles/example_cartesian_poses_with_notifications_cpp.dir/build.make:63: ros_kortex/kortex_examples/CMakeFiles/example_cartesian_poses_with_notifications_cpp.dir/src/full_arm/example_cartesian_poses_with_notifications.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:89: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/actuatorconfig_services.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:115: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/actuatorcyclic_ros_converter.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:232: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/controlconfig_ros_converter.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_examples/CMakeFiles/example_waypoint_action_client_cpp.dir/build.make:63: ros_kortex/kortex_examples/CMakeFiles/example_waypoint_action_client_cpp.dir/src/full_arm/example_waypoint_action_client.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:154: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/base_services.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:284: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/deviceconfig_services.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:245: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/controlconfig_services.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:180: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/basecyclic_ros_converter.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:128: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/base_proto_converter.cpp.o] Interrupt
make[1]: *** [CMakeFiles/Makefile2:28261: ros_kortex/kortex_examples/CMakeFiles/example_cartesian_poses_with_notifications_cpp.dir/all] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:219: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/controlconfig_proto_converter.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_examples/CMakeFiles/example_full_arm_movement_cpp.dir/build.make:63: ros_kortex/kortex_examples/CMakeFiles/example_full_arm_movement_cpp.dir/src/full_arm/example_full_arm_movement.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:193: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/common_proto_converter.cpp.o] Interrupt
make[1]: *** [CMakeFiles/Makefile2:28070: ros_kortex/kortex_examples/CMakeFiles/example_waypoint_action_client_cpp.dir/all] Interrupt
make[2]: *** [ros_kortex/third_party/gazebo-pkgs/gazebo_version_helpers/CMakeFiles/gazebo_version_helpers.dir/build.make:63: ros_kortex/third_party/gazebo-pkgs/gazebo_version_helpers/CMakeFiles/gazebo_version_helpers.dir/src/GazeboVersionHelpers.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:258: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/deviceconfig_proto_converter.cpp.o] Interrupt
make[2]: *** [ros_kortex/third_party/roboticsgroup_gazebo_plugins/CMakeFiles/roboticsgroup_gazebo_mimic_joint_plugin.dir/build.make:63: ros_kortex/third_party/roboticsgroup_gazebo_plugins/CMakeFiles/roboticsgroup_gazebo_mimic_joint_plugin.dir/src/mimic_joint_plugin.cpp.o] Interrupt
make[2]: *** [ros_kortex/third_party/roboticsgroup_gazebo_plugins/CMakeFiles/roboticsgroup_gazebo_disable_link_plugin.dir/build.make:63: ros_kortex/third_party/roboticsgroup_gazebo_plugins/CMakeFiles/roboticsgroup_gazebo_disable_link_plugin.dir/src/disable_link_plugin.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:102: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/actuatorcyclic_proto_converter.cpp.o] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:141: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/base_ros_converter.cpp.o] Interrupt
make[1]: *** [CMakeFiles/Makefile2:27985: ros_kortex/kortex_examples/CMakeFiles/example_full_arm_movement_cpp.dir/all] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:206: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/common_ros_converter.cpp.o] Interrupt
make[1]: *** [CMakeFiles/Makefile2:3544: ros_kortex/third_party/gazebo-pkgs/gazebo_version_helpers/CMakeFiles/gazebo_version_helpers.dir/all] Interrupt
make[1]: *** [CMakeFiles/Makefile2:4206: ros_kortex/third_party/roboticsgroup_gazebo_plugins/CMakeFiles/roboticsgroup_gazebo_mimic_joint_plugin.dir/all] Interrupt
make[1]: *** [CMakeFiles/Makefile2:4125: ros_kortex/third_party/roboticsgroup_gazebo_plugins/CMakeFiles/roboticsgroup_gazebo_disable_link_plugin.dir/all] Interrupt
make[2]: *** [ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/build.make:76: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/src/generated/robot/actuatorconfig_ros_converter.cpp.o] Interrupt
make[1]: *** [CMakeFiles/Makefile2:4370: ros_kortex/kortex_driver/CMakeFiles/kortex_driver_generated_files.dir/all] Interrupt
make: *** [Makefile:141: all] Interrupt
Traceback (most recent call last):
  File "/opt/ros/noetic/bin/catkin_make", line 306, in <module>
    sys.exit(main())
  File "/opt/ros/noetic/bin/catkin_make", line 249, in main
    run_command(cmd, make_path)
  File "/opt/ros/noetic/lib/python3/dist-packages/catkin/builder.py", line 241, in run_command
    proc.wait()
  File "/usr/lib/python3.8/subprocess.py", line 1083, in wait
    return self._wait(timeout=timeout)
  File "/usr/lib/python3.8/subprocess.py", line 1806, in _wait
    (pid, sts) = self._try_wait(0)
  File "/usr/lib/python3.8/subprocess.py", line 1764, in _try_wait
    (pid, sts) = os.waitpid(self.pid, wait_flags)
KeyboardInterrupt
@felixmaisonneuve
Copy link
Contributor

Hi @RaduCorcodel,

Can you git pull your noetic-devel branch and try again. I just merged the modifications needed in this PR.

I created the branch a few days ago from the ROS Melodic branch, but only merge its actual content today.

It should now work and you should be able to build with the latest changes.
Sorry about that.

Best,
Felix

@RaduCorcodel
Copy link
Contributor Author

Hi @felixmaisonneuve,

No worries, I wasn't sure if the problem was on my end because the computer had a slight hiccup when installing ROS. Installed package was broken but I thought I fixed it. But with the latest commit, everything builds just fine so it's resolved.

I have the identical problem when I tried to build the ROS package from Robotiq (we're also using other grippers from Robotiq and controlling them through a separate HW controller). Do you have a hint of what causes this error in the first place? Maybe it's an easy fix since their repo doesn't have a Noetic branch yet.
Thank you in advance. I'll close this now.

@felixmaisonneuve
Copy link
Contributor

Yes, it is because of the 2 repos that we are using in the "third_party" folder. They are both not compatible with the newest version of Gazebo.

First, we were previously using roboticsgroup_gazebo_plugins. This repo is outdated and if you go on its github page you will find the link to the newest (and working) repo.

Also (and I think this is where you error comes from), the third_party/gazebo-pkgs is also outdated and defines the compiler version to c++11 in the CMakelists.txt (which is not compatible with the math6 librairy or something). You can make it work by using c++17 instead (if I remember correctly) or by using the latest version of its repo (like I did). To change the compiler version, you would need something like that in the CMakelists.txt files within the package :

set(CMAKE_CXX_FLAGS "-std=c++17")

instead of

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

You can find hints about this in the huge output you provided :

/usr/include/ignition/math6/ignition/math/Capsule.hh:91:15: note: ‘std::optional’ is only available from C++17 onwards
   91 |       public: std::optional< MassMatrix3<Precision> > MassMatrix() const;
/usr/include/ignition/math6/ignition/math/Ellipsoid.hh:77:15: note: ‘std::optional’ is only available from C++17 onwards
   77 |       public: std::optional< MassMatrix3<Precision> > MassMatrix() const;

...

Hope this answers your question
Best,
Felix

@RaduCorcodel
Copy link
Contributor Author

Hi @felixmaisonneuve,

This is perfect. I did see the compiler hinting to use C++17 and I did set it in the metapackage hoping it will apply to the entire build, but now that I think of it I think it gets overwritten by the sub-project's CMakeLists. I'll take a second pass at it and fingers crossed it works. Thanks again for the tips, it's exactly what I need to get myself started.

Best,
Radu

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants