Open bukatea opened 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,
make ndnrtc-client
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.
libconfig9
libconfig++9v5
libconfig-dev
libconfig++-dev
libconfig-doc
Thanks!
I meet the same issue. Do you find any solution later? Thanks
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,Note: I have installed
libconfig9
,libconfig++9v5
,libconfig-dev
,libconfig++-dev
, andlibconfig-doc
.Thanks!