Hi all, especially GUI persons!

PulseView won't build for me from HEAD.  git bisect points to
commit 3a21afa as of 2016-08-31, the compile error is related to
Boost and serialization.  Build output is attached (because of
the excessive line length).  The innermost message is

  boost/serialization/access.hpp:118:9: error:
  ‘class 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>’
  has no member named ‘serialize’

PulseView builds for others, so the error must be specific to my
local setup.  This is Linux Mint 17 with Boost 1.54.  Does the
view.cpp code depend on a specific Boost version?  More recent
commits don't suggest so, commit f8cbea47735d merely states that
"libboost-serialization" is required (which is found) and that
">=1.53" should be good (which is available).

Is some #include statement missing, to make the serialization
template work for the specific data type that is referenced from
application code?  Have seen
http://stackoverflow.com/questions/16130787/struct-stdpairint-int-has-no-member-named-serialize
but unfortunately I'm mostly ignorant about C++ and the simple
#include <boost/serialization/utility.hpp> did not help ... :(

https://svn.boost.org/trac/boost/ticket/10727 suggests that a
specific derive order (base classes) is required?

Can others reproduce?  Can I provide more helpful data?  How?


virtually yours
Gerhard Sittig
-- 
     If you don't understand or are scared by any of the above
             ask your parents or an adult to help you.
$ cmake .
-- Boost version: 1.54.0
-- Found the following Boost libraries:
--   filesystem
--   serialization
--   system
--   thread
-- Atomics provided by the C-library - yes
-- PulseView version: 0.4.0-git-3a21afa
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/pulseview

$ make
[  1%] Building CXX object CMakeFiles/pulseview.dir/pv/view/view.cpp.o
In file included from 
/usr/include/boost/serialization/extended_type_info_typeid.hpp:37:0,
                 from /usr/include/boost/archive/detail/iserializer.hpp:47,
                 from 
/usr/include/boost/archive/detail/interface_iarchive.hpp:22,
                 from /usr/include/boost/archive/detail/common_iarchive.hpp:23,
                 from /usr/include/boost/archive/basic_text_iarchive.hpp:31,
                 from /usr/include/boost/archive/text_iarchive.hpp:24,
                 from /tmp/pulseview/pv/view/view.cpp:36:
/usr/include/boost/serialization/access.hpp: In instantiation of ‘static void 
boost::serialization::access::serialize(Archive&, T&, unsigned int) [with 
Archive = boost::archive::text_oarchive; T = 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>]’:
/usr/include/boost/serialization/serialization.hpp:69:69:   required from ‘void 
boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = 
boost::archive::text_oarchive; T = 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>]’
/usr/include/boost/serialization/serialization.hpp:128:27:   required from 
‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with 
Archive = boost::archive::text_oarchive; T = 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>]’
/usr/include/boost/archive/detail/oserializer.hpp:152:5:   required from ‘void 
boost::archive::detail::oserializer<Archive, 
T>::save_object_data(boost::archive::detail::basic_oarchive&, const void*) 
const [with Archive = boost::archive::text_oarchive; T = 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>]’
/usr/include/boost/archive/detail/oserializer.hpp:101:1:   required from ‘class 
boost::archive::detail::oserializer<boost::archive::text_oarchive, 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >’
/usr/include/boost/archive/detail/oserializer.hpp:253:13:   required from 
‘static void 
boost::archive::detail::save_non_pointer_type<Archive>::save_standard::invoke(Archive&,
 const T&) [with T = 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>; Archive = 
boost::archive::text_oarchive]’
/usr/include/boost/archive/detail/oserializer.hpp:308:28:   [ skipping 14 
instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/archive/detail/oserializer.hpp:308:28:   required from 
‘static void 
boost::archive::detail::save_non_pointer_type<Archive>::invoke(Archive&, const 
T&) [with T = boost::serialization::nvp<const 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >; Archive = 
boost::archive::text_oarchive]’
/usr/include/boost/archive/detail/oserializer.hpp:525:24:   required from ‘void 
boost::archive::save(Archive&, T&) [with Archive = 
boost::archive::text_oarchive; T = const boost::serialization::nvp<const 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >]’
/usr/include/boost/archive/detail/common_oarchive.hpp:69:40:   required from 
‘void boost::archive::detail::common_oarchive<Archive>::save_override(T&, int) 
[with T = const boost::serialization::nvp<const 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >; Archive = 
boost::archive::text_oarchive]’
/usr/include/boost/archive/basic_text_oarchive.hpp:80:9:   required from ‘void 
boost::archive::basic_text_oarchive<Archive>::save_override(T&, int) [with T = 
const boost::serialization::nvp<const 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >; Archive = 
boost::archive::text_oarchive]’
/usr/include/boost/archive/detail/interface_oarchive.hpp:63:9:   required from 
‘Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(T&) 
[with T = const boost::serialization::nvp<const 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >; Archive = 
boost::archive::text_oarchive]’
/tmp/pulseview/pv/view/view.cpp:259:56:   required from here
/usr/include/boost/serialization/access.hpp:118:9: error: ‘class 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>’ has no member named 
‘serialize’
         t.serialize(ar, file_version);
         ^
/usr/include/boost/serialization/access.hpp: In instantiation of ‘static void 
boost::serialization::access::serialize(Archive&, T&, unsigned int) [with 
Archive = boost::archive::text_iarchive; T = 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>]’:
/usr/include/boost/serialization/serialization.hpp:69:69:   required from ‘void 
boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = 
boost::archive::text_iarchive; T = 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>]’
/usr/include/boost/serialization/serialization.hpp:128:27:   required from 
‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with 
Archive = boost::archive::text_iarchive; T = 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>]’
/usr/include/boost/archive/detail/iserializer.hpp:192:5:   required from ‘void 
boost::archive::detail::iserializer<Archive, 
T>::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned 
int) const [with Archive = boost::archive::text_iarchive; T = 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>]’
/usr/include/boost/archive/detail/iserializer.hpp:120:1:   required from ‘class 
boost::archive::detail::iserializer<boost::archive::text_iarchive, 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >’
/usr/include/boost/archive/detail/iserializer.hpp:387:13:   required from 
‘static void 
boost::archive::detail::load_non_pointer_type<Archive>::load_standard::invoke(Archive&,
 const T&) [with T = 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>; Archive = 
boost::archive::text_iarchive]’
/usr/include/boost/archive/detail/iserializer.hpp:439:28:   [ skipping 16 
instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/archive/detail/iserializer.hpp:592:24:   required from ‘void 
boost::archive::load(Archive&, T&) [with Archive = 
boost::archive::text_iarchive; T = const 
boost::serialization::nvp<boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >]’
/usr/include/boost/archive/detail/common_iarchive.hpp:66:40:   required from 
‘void boost::archive::detail::common_iarchive<Archive>::load_override(T&, int) 
[with T = const 
boost::serialization::nvp<boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >; Archive = 
boost::archive::text_iarchive]’
/usr/include/boost/archive/basic_text_iarchive.hpp:65:9:   required from ‘void 
boost::archive::basic_text_iarchive<Archive>::load_override(T&, int) [with T = 
const 
boost::serialization::nvp<boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >; Archive = 
boost::archive::text_iarchive]’
/usr/include/boost/archive/text_iarchive.hpp:82:57:   required from ‘void 
boost::archive::text_iarchive_impl<Archive>::load_override(T&, int) [with T = 
const 
boost::serialization::nvp<boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >; Archive = 
boost::archive::text_iarchive]’
/usr/include/boost/archive/detail/interface_iarchive.hpp:60:9:   required from 
‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) 
[with T = const 
boost::serialization::nvp<boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u> >; Archive = 
boost::archive::text_iarchive]’
/tmp/pulseview/pv/view/view.cpp:280:56:   required from here
/usr/include/boost/serialization/access.hpp:118:9: error: ‘class 
boost::multiprecision::number<boost::multiprecision::backends::cpp_dec_float<24u>,
 (boost::multiprecision::expression_template_option)0u>’ has no member named 
‘serialize’
make[2]: *** [CMakeFiles/pulseview.dir/pv/view/view.cpp.o] Error 1
make[1]: *** [CMakeFiles/pulseview.dir/all] Error 2
make: *** [all] Error 2
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to