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