Ask Your Question
0

Actionlib connection_monitor.cpp fails when trying to compile ROS Medlodic from source

asked 2018-11-11 21:36:41 -0500

ChrisL8 gravatar image

Here is the failure output:

[ 97%] Building CXX object CMakeFiles/actionlib.dir/src/connection_monitor.cpp.o
/home/chrisl8/ros_catkin_ws/src/actionlib/src/connection_monitor.cpp: In member function ‘bool actionlib::ConnectionMonitor::waitForActionServerToStart(const ros::Duration&, const ros::NodeHandle&)’:
/home/chrisl8/ros_catkin_ws/src/actionlib/src/connection_monitor.cpp:278:66: error: no matching function for call to ‘boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000>::subsecond_duration(double)’
       boost::posix_time::milliseconds(time_left.toSec() * 1000.0f);
                                                                  ^
In file included from /usr/include/boost/date_time/posix_time/posix_time_config.hpp:16,
                 from /usr/include/boost/date_time/posix_time/posix_time_system.hpp:13,
                 from /usr/include/boost/date_time/posix_time/ptime.hpp:12,
                 from /usr/include/boost/date_time/posix_time/posix_time_types.hpp:12,
                 from /usr/include/boost/thread/thread_time.hpp:11,
                 from /usr/include/boost/thread/detail/platform_time.hpp:11,
                 from /usr/include/boost/thread/pthread/condition_variable.hpp:9,
                 from /usr/include/boost/thread/condition_variable.hpp:16,
                 from /usr/include/boost/thread/condition.hpp:13,
                 from /home/chrisl8/ros_catkin_ws/src/actionlib/include/actionlib/client/connection_monitor.h:43,
                 from /home/chrisl8/ros_catkin_ws/src/actionlib/src/connection_monitor.cpp:36:
/usr/include/boost/date_time/time_duration.hpp:285:14: note: candidate: ‘template<class T> boost::date_time::subsecond_duration<base_duration, frac_of_second>::subsecond_duration(const T&, typename boost::enable_if<boost::is_integral<Functor>, void>::type*)’
     explicit subsecond_duration(T const& ss,
              ^~~~~~~~~~~~~~~~~~
/usr/include/boost/date_time/time_duration.hpp:285:14: note:   template argument deduction/substitution failed:
/usr/include/boost/date_time/time_duration.hpp: In substitution of ‘template<class T> boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000>::subsecond_duration(const T&, typename boost::enable_if<boost::is_integral<T> >::type*) [with T = double]’:
/home/chrisl8/ros_catkin_ws/src/actionlib/src/connection_monitor.cpp:278:66:   required from here
/usr/include/boost/date_time/time_duration.hpp:285:14: error: no type named ‘type’ in ‘struct boost::enable_if<boost::is_integral<double>, void>’
In file included from /usr/include/boost/date_time/posix_time/posix_time_config.hpp:16,
                 from /usr/include/boost/date_time/posix_time/posix_time_system.hpp:13,
                 from /usr/include/boost/date_time/posix_time/ptime.hpp:12,
                 from /usr/include/boost/date_time/posix_time/posix_time_types.hpp:12,
                 from /usr/include/boost/thread/thread_time.hpp:11,
                 from /usr/include/boost/thread/detail/platform_time.hpp:11,
                 from /usr/include/boost/thread/pthread/condition_variable.hpp:9,
                 from /usr/include/boost/thread/condition_variable.hpp:16,
                 from /usr/include/boost/thread/condition.hpp:13,
                 from /home/chrisl8/ros_catkin_ws/src/actionlib/include/actionlib/client/connection_monitor.h:43,
                 from /home/chrisl8/ros_catkin_ws/src/actionlib/src/connection_monitor.cpp:36:
/usr/include/boost/date_time/time_duration.hpp:270:30: note: candidate: ‘boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000>::subsecond_duration(const boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000>&)’
   class BOOST_SYMBOL_VISIBLE subsecond_duration : public base_duration
                              ^~~~~~~~~~~~~~~~~~
/usr/include/boost/date_time/time_duration.hpp:270:30: note:   no known conversion for argument 1 from ‘double’ to ‘const boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000>&’
/usr/include/boost/date_time/time_duration.hpp:270:30: note: candidate: ‘boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000>::subsecond_duration(boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000>&&)’
/usr/include/boost/date_time/time_duration.hpp:270:30: note:   no known conversion for argument 1 from ‘double’ to ‘boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000>&&’
make[2]: *** [CMakeFiles ...
(more)
edit retag flag offensive close merge delete

Comments

Same here, probably because of an upgrade to libboost 1.67. At least here on debian testing, on which it worked fine with libboost 1.62

Sietse gravatar imageSietse ( 2018-11-23 03:38:55 -0500 )edit

1 Answer

Sort by » oldest newest most voted
0

answered 2019-08-08 10:51:12 -0500

Franek gravatar image

Hi, I think here found someone the solution:

https://stackoverflow.com/a/53382269/...

Cheers

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2018-11-11 21:36:41 -0500

Seen: 207 times

Last updated: Nov 11 '18