remap / ndnrtc

NDN-RTC Conferencing Library
BSD 2-Clause "Simplified" License
28 stars 12 forks source link

Building headless client fails on Lubuntu 16.04 #16

Open bukatea opened 5 years ago

bukatea commented 5 years ago

Hello,

I am building ndnrtc on Lubuntu 16.04. I have followed the INSTALL.md exactly as it is written, and everything succeeds in building it until I try to build the headless client. When I do a make ndnrtc-client, I get an error with Boost,

ar: /home/lub/ndnrtc-env/webrtc-checkout/src/out/Default/obj/webrtc/tmp-libwebrtc-all.a: File format not recognized
  CXX      client/src/ndnrtc_client-precise-generator.o
In file included from /usr/include/boost/asio/impl/io_service.hpp:18:0,
                 from /usr/include/boost/asio/io_service.hpp:767,
                 from /usr/include/boost/asio/basic_io_object.hpp:19,
                 from /usr/include/boost/asio/basic_socket.hpp:20,
                 from /usr/include/boost/asio/basic_datagram_socket.hpp:20,
                 from /usr/include/boost/asio.hpp:21,
                 from client/src/precise-generator.hpp:12,
                 from client/src/precise-generator.cpp:9:
/usr/include/boost/asio/basic_waitable_timer.hpp: In instantiation of ‘typename boost::asio::async_result<typename boost::asio::handler_type<ConnectHandler, void(boost::system::error_code)>::type>::type boost::asio::basic_waitable_timer<Clock, WaitTraits, WaitableTimerService>::async_wait(WaitHandler&&) [with WaitHandler = std::_Bind<std::_Mem_fn<void (PreciseGeneratorImpl::*)(const boost::system::error_code&)>(boost::shared_ptr<PreciseGeneratorImpl>, boost::arg<1>)>; Clock = std::chrono::_V2::steady_clock; WaitTraits = boost::asio::wait_traits<std::chrono::_V2::steady_clock>; WaitableTimerService = boost::asio::waitable_timer_service<std::chrono::_V2::steady_clock, boost::asio::wait_traits<std::chrono::_V2::steady_clock> >; typename boost::asio::async_result<typename boost::asio::handler_type<ConnectHandler, void(boost::system::error_code)>::type>::type = void]’:
client/src/precise-generator.cpp:142:106:   required from here
/usr/include/boost/asio/basic_waitable_timer.hpp:509:5: error: static assertion failed: WaitHandler type requirements not met
     BOOST_ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check;
     ^
/usr/include/boost/asio/basic_socket.hpp:755:5: error: no match for call to ‘(std::_Bind<std::_Mem_fn<void (PreciseGeneratorImpl::*)(const boost::system::error_code&)>(boost::shared_ptr<PreciseGeneratorImpl>, boost::arg<1>)>) (const boost::system::error_code&)’
     BOOST_ASIO_CONNECT_HANDLER_CHECK(ConnectHandler, handler) type_check;
     ^
In file included from /usr/include/c++/5/memory:79:0,
                 from /usr/include/boost/asio/detail/addressof.hpp:21,
                 from /usr/include/boost/asio/detail/handler_alloc_helpers.hpp:19,
                 from /usr/include/boost/asio/detail/bind_handler.hpp:19,
                 from /usr/include/boost/asio/detail/wrapped_handler.hpp:18,
                 from /usr/include/boost/asio/io_service.hpp:24,
                 from /usr/include/boost/asio/basic_io_object.hpp:19,
                 from /usr/include/boost/asio/basic_socket.hpp:20,
                 from /usr/include/boost/asio/basic_datagram_socket.hpp:20,
                 from /usr/include/boost/asio.hpp:21,
                 from client/src/precise-generator.hpp:12,
                 from client/src/precise-generator.cpp:9:
/usr/include/c++/5/functional:1129:2: note: candidate: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (PreciseGeneratorImpl::*)(const boost::system::error_code&)>; _Bound_args = {boost::shared_ptr<PreciseGeneratorImpl>, boost::arg<1>}]
  operator()(_Args&&... __args)
  ^
/usr/include/c++/5/functional:1129:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1125:39: error: no match for call to ‘(std::_Mem_fn<void (PreciseGeneratorImpl::*)(const boost::system::error_code&)>) (boost::shared_ptr<PreciseGeneratorImpl>&, boost::arg<1>&)’
  = decltype( std::declval<_Functor&>()(
                                       ^
/usr/include/c++/5/functional:582:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class&, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:582:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1125:39: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class& {aka PreciseGeneratorImpl&}’
  = decltype( std::declval<_Functor&>()(
                                       ^
/usr/include/c++/5/functional:589:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class&&, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class&& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:589:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1125:39: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class&& {aka PreciseGeneratorImpl&&}’
  = decltype( std::declval<_Functor&>()(
                                       ^
/usr/include/c++/5/functional:599:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class*, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class* __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:599:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1125:39: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class* {aka PreciseGeneratorImpl*}’
  = decltype( std::declval<_Functor&>()(
                                       ^
/usr/include/c++/5/functional:607:2: note: candidate: template<class _Tp, class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(_Tp&&, _Args&& ...) const [with _Tp = _Tp; _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Tp&& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:607:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:618:2: note: candidate: template<class _Tp, class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::reference_wrapper<_Tp>, _Args&& ...) const [with _Tp = _Tp; _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(reference_wrapper<_Tp> __ref, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:618:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1125:39: note:   ‘boost::shared_ptr<PreciseGeneratorImpl>’ is not derived from ‘std::reference_wrapper<_Tp>’
  = decltype( std::declval<_Functor&>()(
                                       ^
/usr/include/c++/5/functional:1143:2: note: candidate: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (PreciseGeneratorImpl::*)(const boost::system::error_code&)>; _Bound_args = {boost::shared_ptr<PreciseGeneratorImpl>, boost::arg<1>}]
  operator()(_Args&&... __args) const
  ^
/usr/include/c++/5/functional:1143:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1139:53: error: no match for call to ‘(const std::_Mem_fn<void (PreciseGeneratorImpl::*)(const boost::system::error_code&)>) (const boost::shared_ptr<PreciseGeneratorImpl>&, const boost::arg<1>&)’
          typename add_const<_Functor>::type&>::type>()(
                                                     ^
/usr/include/c++/5/functional:582:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class&, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:582:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1139:53: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<const boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<const boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘const boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class& {aka PreciseGeneratorImpl&}’
          typename add_const<_Functor>::type&>::type>()(
                                                     ^
/usr/include/c++/5/functional:589:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class&&, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class&& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:589:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1139:53: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<const boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<const boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘const boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class&& {aka PreciseGeneratorImpl&&}’
          typename add_const<_Functor>::type&>::type>()(
                                                     ^
/usr/include/c++/5/functional:599:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class*, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class* __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:599:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1139:53: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<const boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<const boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘const boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class* {aka PreciseGeneratorImpl*}’
          typename add_const<_Functor>::type&>::type>()(
                                                     ^
/usr/include/c++/5/functional:607:2: note: candidate: template<class _Tp, class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(_Tp&&, _Args&& ...) const [with _Tp = _Tp; _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Tp&& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:607:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:618:2: note: candidate: template<class _Tp, class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::reference_wrapper<_Tp>, _Args&& ...) const [with _Tp = _Tp; _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(reference_wrapper<_Tp> __ref, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:618:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1139:53: note:   ‘boost::shared_ptr<PreciseGeneratorImpl>’ is not derived from ‘std::reference_wrapper<_Tp>’
          typename add_const<_Functor>::type&>::type>()(
                                                     ^
/usr/include/c++/5/functional:1157:2: note: candidate: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) volatile [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (PreciseGeneratorImpl::*)(const boost::system::error_code&)>; _Bound_args = {boost::shared_ptr<PreciseGeneratorImpl>, boost::arg<1>}]
  operator()(_Args&&... __args) volatile
  ^
/usr/include/c++/5/functional:1157:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1153:70: error: no match for call to ‘(volatile std::_Mem_fn<void (PreciseGeneratorImpl::*)(const boost::system::error_code&)>) (volatile boost::shared_ptr<PreciseGeneratorImpl>&, volatile boost::arg<1>&)’
                        typename add_volatile<_Functor>::type&>::type>()(
                                                                      ^
/usr/include/c++/5/functional:582:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class&, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:582:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1153:70: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<volatile boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<volatile boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘volatile boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class& {aka PreciseGeneratorImpl&}’
                        typename add_volatile<_Functor>::type&>::type>()(
                                                                      ^
/usr/include/c++/5/functional:589:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class&&, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class&& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:589:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1153:70: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<volatile boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<volatile boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘volatile boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class&& {aka PreciseGeneratorImpl&&}’
                        typename add_volatile<_Functor>::type&>::type>()(
                                                                      ^
/usr/include/c++/5/functional:599:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class*, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class* __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:599:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1153:70: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<volatile boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<volatile boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘volatile boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class* {aka PreciseGeneratorImpl*}’
                        typename add_volatile<_Functor>::type&>::type>()(
                                                                      ^
/usr/include/c++/5/functional:607:2: note: candidate: template<class _Tp, class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(_Tp&&, _Args&& ...) const [with _Tp = _Tp; _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Tp&& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:607:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:618:2: note: candidate: template<class _Tp, class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::reference_wrapper<_Tp>, _Args&& ...) const [with _Tp = _Tp; _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(reference_wrapper<_Tp> __ref, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:618:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1153:70: note:   ‘boost::shared_ptr<PreciseGeneratorImpl>’ is not derived from ‘std::reference_wrapper<_Tp>’
                        typename add_volatile<_Functor>::type&>::type>()(
                                                                      ^
/usr/include/c++/5/functional:1171:2: note: candidate: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const volatile [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (PreciseGeneratorImpl::*)(const boost::system::error_code&)>; _Bound_args = {boost::shared_ptr<PreciseGeneratorImpl>, boost::arg<1>}]
  operator()(_Args&&... __args) const volatile
  ^
/usr/include/c++/5/functional:1171:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1167:64: error: no match for call to ‘(const volatile std::_Mem_fn<void (PreciseGeneratorImpl::*)(const boost::system::error_code&)>) (const volatile boost::shared_ptr<PreciseGeneratorImpl>&, const volatile boost::arg<1>&)’
                        typename add_cv<_Functor>::type&>::type>()(
                                                                ^
/usr/include/c++/5/functional:582:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class&, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:582:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1167:64: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<const volatile boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<const volatile boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘const volatile boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class& {aka PreciseGeneratorImpl&}’
                        typename add_cv<_Functor>::type&>::type>()(
                                                                ^
/usr/include/c++/5/functional:589:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class&&, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class&& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:589:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1167:64: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<const volatile boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<const volatile boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘const volatile boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class&& {aka PreciseGeneratorImpl&&}’
                        typename add_cv<_Functor>::type&>::type>()(
                                                                ^
/usr/include/c++/5/functional:599:2: note: candidate: template<class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::_Class*, _Args&& ...) const [with _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Class* __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:599:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1167:64: note:   cannot convert ‘std::_Mu<boost::shared_ptr<PreciseGeneratorImpl>, false, false>().std::_Mu<_Arg, false, false>::operator()<const volatile boost::shared_ptr<PreciseGeneratorImpl>&, std::tuple<const boost::system::error_code&> >((* & std::declval<const volatile boost::shared_ptr<PreciseGeneratorImpl>&>()), (* & std::declval<std::tuple<const boost::system::error_code&>&>()))’ (type ‘const volatile boost::shared_ptr<PreciseGeneratorImpl>’) to type ‘std::_Mem_fn_base<void (PreciseGeneratorImpl::*)(const boost::system::error_code&), true>::_Class* {aka PreciseGeneratorImpl*}’
                        typename add_cv<_Functor>::type&>::type>()(
                                                                ^
/usr/include/c++/5/functional:607:2: note: candidate: template<class _Tp, class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(_Tp&&, _Args&& ...) const [with _Tp = _Tp; _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(_Tp&& __object, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:607:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:618:2: note: candidate: template<class _Tp, class ... _Args, class _Req> std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::result_type std::_Mem_fn_base<_MemFunPtr, __is_mem_fn>::operator()(std::reference_wrapper<_Tp>, _Args&& ...) const [with _Tp = _Tp; _Args = {_Args ...}; _Req = _Req; _MemFunPtr = void (PreciseGeneratorImpl::*)(const boost::system::error_code&); bool __is_mem_fn = true]
  operator()(reference_wrapper<_Tp> __ref, _Args&&... __args) const
  ^
/usr/include/c++/5/functional:618:2: note:   template argument deduction/substitution failed:
/usr/include/c++/5/functional:1167:64: note:   ‘boost::shared_ptr<PreciseGeneratorImpl>’ is not derived from ‘std::reference_wrapper<_Tp>’
                        typename add_cv<_Functor>::type&>::type>()(
                                                                ^
Makefile:14740: recipe for target 'client/src/ndnrtc_client-precise-generator.o' failed
make: *** [client/src/ndnrtc_client-precise-generator.o] Error 1

Note: I have installed libconfig9, libconfig++9v5, libconfig-dev, libconfig++-dev, and libconfig-doc.

Thanks!

henanda123 commented 3 years ago

I meet the same issue. Do you find any solution later? Thanks