Problem with Serialization in Boost 1.37

Hi, when using Boost v1.37 I get a problem with the serialization library that did not appear before. The following linker error occurs:
::~archive_pointer_oserializer()'
::~archive_pointer_oserializer()'
::~singleton_wrapper()]+0x1d): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor
::~archive_pointer_oserializer()'
::~archive_pointer_oserializer()'
::~archive_pointer_oserializer()'
::~archive_pointer_oserializer()'
The error does not appear when I omit the class registration using BOOST_CLASS_EXPORT_GUID. As far as I understand the error, the linker can't find the d'tor for the singleton where the classes get registered. Below you can find the complete linker output. Any help is appreciated, Chris libtool: link: g++ -g -O2 -rdynamic -o distack distack-Distack.o base/Timer.o base/SubnetCounterTree.o base/GenericRoutingTable.o messages/MessageAddressDistribution.o -lboost_thread-gcc43-mt -lboost_serialization-gcc43-mt -lboost_signals-gcc43-mt -lboost_system-gcc43-mt -L/simfs/users/gamer/distack_sabine/libs/lib base/libbase.a messages/libmessage.a /usr/lib/libltdl.so -ldl -lxerces-c -lpcap -lpthread base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::detail::singleton_wrapper<boost::archive::detail::poi nter_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost::a rchive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageTimer> >::~singleton_wrapper()': RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization6detail17singleton_ wrapperINS_7archive6detail19pointer_oserializerINS4_26polymorphic_oarchive_r outeINS3_20binary_oarchive_implINS3_15binary_oarchiveEcSt11char_traitsIcEEEE E12MessageTimerEEED0Ev[boost::serialization::detail::singleton_wrapper<boost ::archive::detail::pointer_oserializer<boost::archive::detail::polymorphic_o archive_route<boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive, char, std::char_traits<char> > >, MessageTimer> base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::detail::singleton_wrapper<boost::archive::detail::poi nter_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost::a rchive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageTimer> >::~singleton_wrapper()': RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization6detail17singleton_ wrapperINS_7archive6detail19pointer_oserializerINS4_26polymorphic_oarchive_r outeINS3_20binary_oarchive_implINS3_15binary_oarchiveEcSt11char_traitsIcEEEE E12MessageTimerEEED1Ev[boost::serialization::detail::singleton_wrapper<boost ::archive::detail::pointer_oserializer<boost::archive::detail::polymorphic_o archive_route<boost::archive::binary_oarchive_impl<boost::archive::binary_oa rchive, char, std::char_traits<char> > >, MessageTimer> base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageTimer>::~pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE12MessageTimerED0Ev[boost::archive::detail:: pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost ::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageTimer>::~pointer_oserializer()]+0x13): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageTimer>::~pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE12MessageTimerED1Ev[boost::archive::detail:: pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost ::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageTimer>::~pointer_oserializer()]+0xf): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::detail::singleton_wrapper<boost::archive::detail::poi nter_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost::a rchive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageAggregateIntervalValues> base/libbase.a(RemoteMessagingSystem.o):RemoteMessagingSystem.cpp:(.text._ZN 5boost13serialization6detail17singleton_wrapperINS_7archive6detail19pointer_ oserializerINS4_26polymorphic_oarchive_routeINS3_20binary_oarchive_implINS3_ 15binary_oarchiveEcSt11char_traitsIcEEEEE30MessageAggregateIntervalValuesEEE D1Ev[boost::serialization::detail::singleton_wrapper<boost::archive::detail: :pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boos t::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageAggregateIntervalValues> base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::detail::singleton_wrapper<boost::archive::detail::poi nter_iserializer<boost::archive::polymorphic_binary_iarchive, MessageTimer> phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::detail::singleton_wrapper<boost::archive::detail::poi nter_iserializer<boost::archive::polymorphic_binary_iarchive, MessageTimer> phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_iserializer<boost::archive::polymorphic_bin ary_iarchive, MessageTimer>::~pointer_iserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_iserializ erINS0_27polymorphic_binary_iarchiveE12MessageTimerED0Ev[boost::archive::det ail::pointer_iserializer<boost::archive::polymorphic_binary_iarchive, MessageTimer>::~pointer_iserializer()]+0x13): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_iserializer<boost::archive::polymorphic_bin ary_iarchive, MessageTimer>::~pointer_iserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_iserializ erINS0_27polymorphic_binary_iarchiveE12MessageTimerED1Ev[boost::archive::det ail::pointer_iserializer<boost::archive::polymorphic_binary_iarchive, MessageTimer>::~pointer_iserializer()]+0xf): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::detail::singleton_wrapper<boost::archive::detail::poi nter_iserializer<boost::archive::polymorphic_binary_iarchive, MessageAggregateIntervalValues> >::~singleton_wrapper()': RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization6detail17singleton_ wrapperINS_7archive6detail19pointer_iserializerINS3_27polymorphic_binary_iar chiveE30MessageAggregateIntervalValuesEEED0Ev[boost::serialization::detail:: singleton_wrapper<boost::archive::detail::pointer_iserializer<boost::archive ::polymorphic_binary_iarchive, MessageAggregateIntervalValues> phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o):RemoteMessagingSystem.cpp:(.text._ZN 5boost13serialization6detail17singleton_wrapperINS_7archive6detail19pointer_ iserializerINS3_27polymorphic_binary_iarchiveE30MessageAggregateIntervalValu esEEED1Ev[boost::serialization::detail::singleton_wrapper<boost::archive::de tail::pointer_iserializer<boost::archive::polymorphic_binary_iarchive, MessageAggregateIntervalValues> >::~singleton_wrapper()]+0x19): more undefined references to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::~archive_pointer_iserializer()' follow base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageAggregateWatchValues>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE27MessageAggregateWatchValuesEC2Ev[boost::ar chive::detail::pointer_oserializer<boost::archive::detail::polymorphic_oarch ive_route<boost::archive::binary_oarchive_impl<boost::archive::binary_oarchi ve, char, std::char_traits<char> > >, MessageAggregateWatchValues>::pointer_oserializer()]+0x1d): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageLastSuspiciousAggregate>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE30MessageLastSuspiciousAggregateEC1Ev[boost: :archive::detail::pointer_oserializer<boost::archive::detail::polymorphic_oa rchive_route<boost::archive::binary_oarchive_impl<boost::archive::binary_oar chive, char, std::char_traits<char> > >, MessageLastSuspiciousAggregate>::pointer_oserializer()]+0x1d): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageTimer>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE12MessageTimerEC1Ev[boost::archive::detail:: pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost ::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageTimer>::pointer_oserializer()]+0x1d): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost ::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageTimer>::pointer_oserializer()]+0x7a): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageAggregateIntervalValues>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE30MessageAggregateIntervalValuesEC2Ev[boost: :archive::detail::pointer_oserializer<boost::archive::detail::polymorphic_oa rchive_route<boost::archive::binary_oarchive_impl<boost::archive::binary_oar chive, char, std::char_traits<char> > >, MessageAggregateIntervalValues>::pointer_oserializer()]+0x1d): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageAlert>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE12MessageAlertEC2Ev[boost::archive::detail:: pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost ::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageAlert>::pointer_oserializer()]+0x1d): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost ::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageAlert>::pointer_oserializer()]+0x7a): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageLastAnomalyType>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE22MessageLastAnomalyTypeEC1Ev[boost::archive ::detail::pointer_oserializer<boost::archive::detail::polymorphic_oarchive_r oute<boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageLastAnomalyType>::pointer_oserializer()]+0x1d): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::singleton<boost::archive::detail::pointer_iserializer <boost::archive::polymorphic_binary_iarchive, MessageAggregateWatchValues> phic_binary_iarchive>::archive_pointer_iserializer(boost::serialization::ext ended_type_info const&)' RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization9singletonINS_7arch ive6detail19pointer_iserializerINS2_27polymorphic_binary_iarchiveE27MessageA ggregateWatchValuesEEE12get_instanceEv[boost::serialization::singleton<boost ::archive::detail::pointer_iserializer<boost::archive::polymorphic_binary_ia rchive, MessageAggregateWatchValues> >::get_instance()]+0xe3): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::singleton<boost::archive::detail::pointer_iserializer <boost::archive::polymorphic_binary_iarchive, MessageTimer> phic_binary_iarchive>::archive_pointer_iserializer(boost::serialization::ext ended_type_info const&)' RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization9singletonINS_7arch ive6detail19pointer_iserializerINS2_27polymorphic_binary_iarchiveE12MessageT imerEEE12get_instanceEv[boost::serialization::singleton<boost::archive::deta il::pointer_iserializer<boost::archive::polymorphic_binary_iarchive, MessageTimer> >::get_instance()]+0xe3): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::singleton<boost::archive::detail::pointer_iserializer <boost::archive::polymorphic_binary_iarchive, MessageAlert> phic_binary_iarchive>::archive_pointer_iserializer(boost::serialization::ext ended_type_info const&)' RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization9singletonINS_7arch ive6detail19pointer_iserializerINS2_27polymorphic_binary_iarchiveE12MessageA lertEEE12get_instanceEv[boost::serialization::singleton<boost::archive::deta il::pointer_iserializer<boost::archive::polymorphic_binary_iarchive, MessageAlert> >::get_instance()]+0xe3): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::singleton<boost::archive::detail::pointer_iserializer <boost::archive::polymorphic_binary_iarchive, MessageLastAnomalyType> phic_binary_iarchive>::archive_pointer_iserializer(boost::serialization::ext ended_type_info const&)' RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization9singletonINS_7arch ive6detail19pointer_iserializerINS2_27polymorphic_binary_iarchiveE22MessageL astAnomalyTypeEEE12get_instanceEv[boost::serialization::singleton<boost::arc hive::detail::pointer_iserializer<boost::archive::polymorphic_binary_iarchiv e, MessageLastAnomalyType> >::get_instance()]+0xe3): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::singleton<boost::archive::detail::pointer_iserializer <boost::archive::polymorphic_binary_iarchive, MessageLastSuspiciousAggregate> >::get_instance()': RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization9singletonINS_7arch ive6detail19pointer_iserializerINS2_27polymorphic_binary_iarchiveE30MessageL astSuspiciousAggregateEEE12get_instanceEv[boost::serialization::singleton<bo ost::archive::detail::pointer_iserializer<boost::archive::polymorphic_binary _iarchive, MessageLastSuspiciousAggregate> >::get_instance()]+0x6f): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::archive_pointer_iserializer(boost::serialization::ext ended_type_info const&)' RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization9singletonINS_7arch ive6detail19pointer_iserializerINS2_27polymorphic_binary_iarchiveE30MessageL astSuspiciousAggregateEEE12get_instanceEv[boost::serialization::singleton<bo ost::archive::detail::pointer_iserializer<boost::archive::polymorphic_binary _iarchive, MessageLastSuspiciousAggregate> >::get_instance()]+0xe3): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o): In function `boost::serialization::singleton<boost::archive::detail::pointer_iserializer <boost::archive::polymorphic_binary_iarchive, MessageAggregateIntervalValues> >::get_instance()': RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization9singletonINS_7arch ive6detail19pointer_iserializerINS2_27polymorphic_binary_iarchiveE30MessageA ggregateIntervalValuesEEE12get_instanceEv[boost::serialization::singleton<bo ost::archive::detail::pointer_iserializer<boost::archive::polymorphic_binary _iarchive, MessageAggregateIntervalValues> >::get_instance()]+0x6f): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::archive_pointer_iserializer(boost::serialization::ext ended_type_info const&)' RemoteMessagingSystem.cpp:(.text._ZN5boost13serialization9singletonINS_7arch ive6detail19pointer_iserializerINS2_27polymorphic_binary_iarchiveE30MessageA ggregateIntervalValuesEEE12get_instanceEv[boost::serialization::singleton<bo ost::archive::detail::pointer_iserializer<boost::archive::polymorphic_binary _iarchive, MessageAggregateIntervalValues> >::get_instance()]+0xe3): undefined reference to `boost::archive::detail::archive_pointer_iserializer<boost::archive::polymor phic_binary_iarchive>::~archive_pointer_iserializer()' base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageLastSuspiciousAggregate>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE30MessageLastSuspiciousAggregateEC2Ev[boost: :archive::detail::pointer_oserializer<boost::archive::detail::polymorphic_oa rchive_route<boost::archive::binary_oarchive_impl<boost::archive::binary_oar chive, char, std::char_traits<char> > >, MessageLastSuspiciousAggregate>::pointer_oserializer()]+0x22): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageAggregateWatchValues>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE27MessageAggregateWatchValuesEC1Ev[boost::ar chive::detail::pointer_oserializer<boost::archive::detail::polymorphic_oarch ive_route<boost::archive::binary_oarchive_impl<boost::archive::binary_oarchi ve, char, std::char_traits<char> > >, MessageAggregateWatchValues>::pointer_oserializer()]+0x22): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageAlert>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE12MessageAlertEC1Ev[boost::archive::detail:: pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost ::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageAlert>::pointer_oserializer()]+0x22): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost ::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageAlert>::pointer_oserializer()]+0x11e): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageTimer>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE12MessageTimerEC2Ev[boost::archive::detail:: pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost ::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageTimer>::pointer_oserializer()]+0x22): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > pointer_oserializer<boost::archive::detail::polymorphic_oarchive_route<boost ::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageTimer>::pointer_oserializer()]+0x11e): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageAggregateIntervalValues>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE30MessageAggregateIntervalValuesEC1Ev[boost: :archive::detail::pointer_oserializer<boost::archive::detail::polymorphic_oa rchive_route<boost::archive::binary_oarchive_impl<boost::archive::binary_oar chive, char, std::char_traits<char> > >, MessageAggregateIntervalValues>::pointer_oserializer()]+0x22): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > > base/libbase.a(RemoteMessagingSystem.o): In function `boost::archive::detail::pointer_oserializer<boost::archive::detail::polymor phic_oarchive_route<boost::archive::binary_oarchive_impl<boost::archive::bin ary_oarchive, char, std::char_traits<char> > >, MessageLastAnomalyType>::pointer_oserializer()': RemoteMessagingSystem.cpp:(.text._ZN5boost7archive6detail19pointer_oserializ erINS1_26polymorphic_oarchive_routeINS0_20binary_oarchive_implINS0_15binary_ oarchiveEcSt11char_traitsIcEEEEE22MessageLastAnomalyTypeEC2Ev[boost::archive ::detail::pointer_oserializer<boost::archive::detail::polymorphic_oarchive_r oute<boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> > >, MessageLastAnomalyType>::pointer_oserializer()]+0x22): undefined reference to `boost::archive::detail::archive_pointer_oserializer<boost::archive::detail: :polymorphic_oarchive_route<boost::archive::binary_oarchive_impl<boost::arch ive::binary_oarchive, char, std::char_traits<char> > >
collect2: ld returned 1 exit status make[2]: *** [distack] Fehler 1 make[2]: Verlasse Verzeichnis '/simfs/users/gamer/distack_sabine/src' make[1]: *** [all-recursive] Fehler 1 make[1]: Verlasse Verzeichnis '/simfs/users/gamer/distack_sabine/src' make: *** [all-recursive] Fehler 1

Hi,
Robert Ramey schrieb:
Thanks for your reply. Unfortunately I have been struggling with this now for weeks and can't get it to work. I created a minimal sample that reproduces the linker error on Boost 1.38. The sample is attached below and available at http://pastebin.com/m5eebb3b7 This code does not compile on Boost 1.38 but on Boost 1.34. There is one special one that is shown as ///////// COMMENT THE NEXT LINE TO MAKE IT COMPILE!!! If I comment the next line in the sample the code compiler with Boost 1.38. But then I get an exception saying "unregistered class". If possible I would like to use BOOST_CLASS_EXPORT as it fits nicely into my project structure. I am aware that the there are much unused #includes, as I assembled this sample from a larger project. Any hints on how the inclusion of the BOOST_CLASS_EXPORT causes problems here is welcome! Thanks, Chris ////////////////////////////////////////////// // ---------------> Message #include <boost/serialization/serialization.hpp> #include <boost/serialization/base_object.hpp> #include <boost/serialization/assume_abstract.hpp> class Message { friend class boost::serialization::access; public: Message() : type(123) { } virtual ~Message(){ } virtual void virtualfunc () = 0; private: int type; template<class Archive> void serialize(Archive& x, const unsigned int version){ x & type; } }; BOOST_SERIALIZATION_ASSUME_ABSTRACT(Message); ////////////////////////////////////////////// // ----------------> MessageTimer #include <boost/serialization/string.hpp> using std::string; class MessageTimer : public Message { friend class boost::serialization::access; public: MessageTimer(int x) : event(x){ } MessageTimer() : event(0){ } virtual ~MessageTimer(){ } virtual void virtualfunc(){ } private: int event; template<class Archive> void serialize(Archive& y, const unsigned int version){ boost::serialization::base_object<Message>(*this); boost::serialization::void_cast_register<MessageTimer, Message> (); y & event; } }; ////////////////////////////////////////////// // ----------------> Serialization #include <iostream> #include <sstream> #include <ios> #include <boost/archive/polymorphic_binary_oarchive.hpp> #include <boost/archive/polymorphic_binary_iarchive.hpp> #include <boost/serialization/utility.hpp> #include <boost/serialization/serialization.hpp> #include <boost/serialization/tracking.hpp> #include <boost/serialization/base_object.hpp> #include <boost/serialization/export.hpp> #include <boost/serialization/factory.hpp> ///////// COMMENT THE NEXT LINE TO MAKE IT COMPILE!!! BOOST_CLASS_EXPORT(MessageTimer); /////////////////////////////////////////////////////// BOOST_CLASS_TRACKING(MessageTimer, boost::serialization::track_never); int main(){ Message* msg = new MessageTimer( 5 ); std::stringstream archiveStream (std::ios_base::binary | std::ios_base::out); { boost::archive::polymorphic_binary_oarchive outputArchive (archiveStream); outputArchive & msg; } string data= archiveStream.str (); std::cout << data << std::endl; return 0; }
-- Dipl.-Inform. Christoph P. Mayer Institute of Telematics, University of Karlsruhe (TH) Zirkel 2, 76128 Karlsruhe, Germany Phone: +49 721 608 6415, Email: mayer@tm.uka.de Web: http://www.tm.uka.de/~mayer/

Hi, I still have the issue described below. If someone could give me a hint why using BOOST_CLASS_EXPORT from Boost.Serialization give me linker errors I would greatly appreciate it! The small code that reproduces the problem is available at http://pastebin.com/m5eebb3b7 Thanks, Chris Christoph Mayer schrieb:
-- Dipl.-Inform. Christoph P. Mayer Institute of Telematics, University of Karlsruhe (TH) Zirkel 2, 76128 Karlsruhe, Germany Phone: +49 721 608 6415, Email: mayer@tm.uka.de Web: http://www.tm.uka.de/~mayer/

Christoph Mayer wrote:
Can you produce a self-contained example? Namely, an archive in a widely used format, containing all the source files and a shell script that builds the project, and resulting in a link error. Also, you did not comment in any way on the suggestion Sohail Somani made -- did you miss that post? - Volodya

Hi Vladimir,
attached is the self-contained example. It fails with a linker error on Boost 1.38. Commenting the BOOST_CLASS_EXPORT line in the example removes the linker error.
Also, you did not comment in any way on the suggestion Sohail Somani made -- did you miss that post?
Sorry, really did miss this post. I tried changing the linker flags position in the self-contained example as suggested but it did not help. Best regards, Chris

Hmmm - on my system - using the latest version of the library, I have no problem compiling this example. As I understand it, the original problem was that the example failed to link. Unfortunately, right now I can't link since I'm messing with the library build. Robert Ramey Christoph Mayer wrote:

Vladimir Prus wrote:
Forgot to mention the thread: http://thread.gmane.org/gmane.comp.lib.boost.user/44474/ I also attach the test program -- which still fails to link for me on Linux, in up-to-date SVN head. - Volodya

There are further polymorphic archives missing in the jamfile, at least polymorphic_text_iarchive and oarchive. I now switched from polymorphic_binary_{i|o}archive to binary_{i|o}archive. As I understand the only drawback is compilation speed and efficiency. Thanks for the help. Chris Index: libs/serialization/build/Jamfile.v2 =================================================================== --- libs/serialization/build/Jamfile.v2 (revision 51259) +++ libs/serialization/build/Jamfile.v2 (working copy) @@ -71,6 +71,8 @@ extended_type_info_no_rtti polymorphic_iarchive polymorphic_oarchive + polymorphic_binary_iarchive + polymorphic_binary_oarchive stl_port text_iarchive text_oarchive Index: libs/serialization/src/polymorphic_binary_iarchive.cpp Vladimir Prus schrieb:
-- Dipl.-Inform. Christoph P. Mayer Institute of Telematics, University of Karlsruhe (TH) Zirkel 2, 76128 Karlsruhe, Germany Phone: +49 721 608 6415, Email: mayer@tm.uka.de Web: http://www.tm.uka.de/~mayer/

Christoph Mayer wrote:
There are further polymorphic archives missing in the jamfile, at least polymorphic_text_iarchive and oarchive.
For avoidance of doubt, there are not missing in the jamfile. They are missing in source, so naturally, there's nothing to compile.
I honestly don't understand why polymorphic_binary_{i|o}archive exist at all. I should be able to grab any existing archive type and wrap it into polymorphic wrapper of some kind. - Volodya

This is a stretch but have you tried putting -lboost_serialization *after* /path/to/libbase.a ? In some linkers, if library A needs library B then B needs to come after A in the link line. I see you are using libtool so I don't know how you'd do that with libtool. Christoph Mayer wrote:
-- Sohail Somani http://uint32t.blogspot.com
participants (4)
-
Christoph Mayer
-
Robert Ramey
-
Sohail Somani
-
Vladimir Prus