Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Building headless client fails on Lubuntu 16.04 #16

@bukatea

Description

@bukatea

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions