2013-05-14 1 views
4

j'ai essayé de construire le premier exemple que je trouve ici: Boost serialization tutorial mais je reçois cette erreur:ne peut pas construire exemple boost sérialisation

Undefined symbols: 
"boost::archive::archive_exception::~archive_exception()", referenced from: 
    void boost::serialization::throw_exception<boost::archive::archive_exception>(boost::archive::archive_exception const&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<int>(int&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<int>(int&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<float>(float&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<float>(float&)in main.o 
    boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save(float)in main.o 
    boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save(float)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::tracking_type>(boost::archive::tracking_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::tracking_type>(boost::archive::tracking_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::object_reference_type>(boost::archive::object_reference_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::object_reference_type>(boost::archive::object_reference_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::object_id_type>(boost::archive::object_id_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::object_id_type>(boost::archive::object_id_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<unsigned int>(unsigned int const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<unsigned int>(unsigned int const&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<boost::archive::tracking_type>(boost::archive::tracking_type&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<boost::archive::tracking_type>(boost::archive::tracking_type&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<boost::archive::object_id_type>(boost::archive::object_id_type&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<boost::archive::object_id_type>(boost::archive::object_id_type&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<unsigned int>(unsigned int&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<unsigned int>(unsigned int&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<int>(int const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<int>(int const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::class_id_reference_type>(boost::archive::class_id_reference_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::class_id_reference_type>(boost::archive::class_id_reference_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::class_id_type>(boost::archive::class_id_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::class_id_type>(boost::archive::class_id_type const&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<boost::archive::class_id_type>(boost::archive::class_id_type&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<boost::archive::class_id_type>(boost::archive::class_id_type&)in main.o 
"boost::serialization::typeid_system::extended_type_info_typeid_0::extended_type_info_typeid_0(char const*)", referenced from: 
    boost::serialization::extended_type_info_typeid<gps_position>::extended_type_info_typeid()in main.o 
"boost::archive::detail::basic_oarchive::end_preamble()", referenced from: 
    void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, float>(boost::archive::text_oarchive&, float const&)in main.o 
    void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, boost::archive::tracking_type>(boost::archive::text_oarchive&, boost::archive::tracking_type const&)in main.o 
    void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, boost::archive::object_reference_type>(boost::archive::text_oarchive&, boost::archive::object_reference_type const&)in main.o 
    void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, boost::archive::object_id_type>(boost::archive::text_oarchive&, boost::archive::object_id_type const&)in main.o 
    void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, boost::archive::version_type>(boost::archive::text_oarchive&, boost::archive::version_type const&)in main.o 
    void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, int>(boost::archive::text_oarchive&, int const&)in main.o 
    void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, boost::archive::class_id_reference_type>(boost::archive::text_oarchive&, boost::archive::class_id_reference_type const&)in main.o 
    void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, boost::archive::class_id_type>(boost::archive::text_oarchive&, boost::archive::class_id_type const&)in main.o 
    void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::archive::text_oarchive&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in main.o 
"typeinfo for boost::archive::detail::basic_oarchive", referenced from: 
    boost::archive::text_oarchive& boost::serialization::smart_cast_impl::reference<boost::archive::text_oarchive&>::polymorphic::cross::cast<boost::archive::detail::basic_oarchive>(boost::archive::detail::basic_oarchive&)in main.o 
    typeinfo for boost::archive::detail::common_oarchive<boost::archive::text_oarchive>in main.o 
"boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load_override(boost::archive::class_name_type&, int)", referenced from: 
    boost::archive::text_iarchive& boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator>><boost::archive::class_name_type>(boost::archive::class_name_type&)in main.o 
"boost::archive::detail::basic_oserializer::~basic_oserializer()", referenced from: 
    boost::archive::detail::oserializer<boost::archive::text_oarchive, gps_position>::~oserializer()in main.o 
    boost::archive::detail::oserializer<boost::archive::text_oarchive, gps_position>::~oserializer()in main.o 
    boost::archive::detail::oserializer<boost::archive::text_oarchive, gps_position>::~oserializer()in main.o 
"boost::archive::archive_exception::archive_exception(boost::archive::archive_exception::exception_code, char const*, char const*)", referenced from: 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<int>(int&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<float>(float&)in main.o 
    boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save(float)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::tracking_type>(boost::archive::tracking_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::object_reference_type>(boost::archive::object_reference_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::object_id_type>(boost::archive::object_id_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<unsigned int>(unsigned int const&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<boost::archive::tracking_type>(boost::archive::tracking_type&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<boost::archive::object_id_type>(boost::archive::object_id_type&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<unsigned int>(unsigned int&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<int>(int const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::class_id_reference_type>(boost::archive::class_id_reference_type const&)in main.o 
    void boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::save<boost::archive::class_id_type>(boost::archive::class_id_type const&)in main.o 
    void boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::load<boost::archive::class_id_type>(boost::archive::class_id_type&)in main.o 
"typeinfo for boost::archive::archive_exception", referenced from: 
    void boost::serialization::throw_exception<boost::archive::archive_exception>(boost::archive::archive_exception const&)in main.o 
"boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::~basic_text_iprimitive()", referenced from: 
    boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::~text_iarchive_impl()in main.o 
    boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::~text_iarchive_impl()in main.o 
    boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::~text_iarchive_impl()in main.o 
    boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::~text_iarchive_impl()in main.o 
    boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::~text_iarchive_impl()in main.o 
    boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::~text_iarchive_impl()in main.o 
"vtable for boost::archive::archive_exception", referenced from: 
    boost::archive::archive_exception::archive_exception(boost::archive::archive_exception const&)in main.o 
    boost::archive::archive_exception::archive_exception(boost::archive::archive_exception const&)in main.o 
"boost::serialization::extended_type_info::key_unregister() const", referenced from: 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
"boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::text_iarchive_impl(std::basic_istream<char, std::char_traits<char> >&, unsigned int)", referenced from: 
    boost::archive::text_iarchive::text_iarchive(std::basic_istream<char, std::char_traits<char> >&, unsigned int)in main.o 
"boost::serialization::typeid_system::extended_type_info_typeid_0::is_equal(boost::serialization::extended_type_info const&) const", referenced from: 
    vtable for boost::serialization::detail::singleton_wrapper<boost::serialization::extended_type_info_typeid<gps_position> >in main.o 
    vtable for boost::serialization::extended_type_info_typeid<gps_position>in main.o 
"boost::serialization::typeid_system::extended_type_info_typeid_0::~extended_type_info_typeid_0()", referenced from: 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
    boost::serialization::extended_type_info_typeid<gps_position>::extended_type_info_typeid()in main.o 
"boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from: 
    void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::archive::text_oarchive&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in main.o 
"boost::archive::detail::basic_oarchive::~basic_oarchive()", referenced from: 
    boost::archive::detail::common_oarchive<boost::archive::text_oarchive>::~common_oarchive()in main.o 
    boost::archive::detail::common_oarchive<boost::archive::text_oarchive>::~common_oarchive()in main.o 
    boost::archive::detail::common_oarchive<boost::archive::text_oarchive>::~common_oarchive()in main.o 
"typeinfo for boost::archive::detail::basic_iarchive", referenced from: 
    boost::archive::text_iarchive& boost::serialization::smart_cast_impl::reference<boost::archive::text_iarchive&>::polymorphic::cross::cast<boost::archive::detail::basic_iarchive>(boost::archive::detail::basic_iarchive&)in main.o 
    typeinfo for boost::archive::detail::common_iarchive<boost::archive::text_iarchive>in main.o 
"boost::serialization::typeid_system::extended_type_info_typeid_0::type_unregister()", referenced from: 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
    boost::serialization::extended_type_info_typeid<gps_position>::~extended_type_info_typeid()in main.o 
"boost::archive::detail::basic_iarchive::load_object(void*, boost::archive::detail::basic_iserializer const&)", referenced from: 
    void boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive>::load_standard::invoke<gps_position>(boost::archive::text_iarchive&, gps_position const&)in main.o 
"typeinfo for boost::archive::detail::basic_oserializer", referenced from: 
    typeinfo for boost::archive::detail::oserializer<boost::archive::text_oarchive, gps_position>in main.o 
"boost::serialization::extended_type_info::key_register() const", referenced from: 
    boost::serialization::extended_type_info_typeid<gps_position>::extended_type_info_typeid()in main.o 
"boost::archive::detail::basic_iserializer::basic_iserializer(boost::serialization::extended_type_info const&)", referenced from: 
    boost::archive::detail::iserializer<boost::archive::text_iarchive, gps_position>::iserializer()in main.o 
"boost::archive::detail::basic_iarchive::~basic_iarchive()", referenced from: 
    boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::~common_iarchive()in main.o 
    boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::~common_iarchive()in main.o 
    boost::archive::detail::common_iarchive<boost::archive::text_iarchive>::~common_iarchive()in main.o 
"boost::archive::detail::shared_ptr_helper::shared_ptr_helper()", referenced from: 
    boost::archive::text_iarchive::text_iarchive(std::basic_istream<char, std::char_traits<char> >&, unsigned int)in main.o 
"boost::archive::detail::basic_iserializer::~basic_iserializer()", referenced from: 
    boost::archive::detail::iserializer<boost::archive::text_iarchive, gps_position>::~iserializer()in main.o 
    boost::archive::detail::iserializer<boost::archive::text_iarchive, gps_position>::~iserializer()in main.o 
    boost::archive::detail::iserializer<boost::archive::text_iarchive, gps_position>::~iserializer()in main.o 
"boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::newtoken()", referenced from: 
    void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<float>(float const&)in main.o 
    void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<boost::archive::tracking_type>(boost::archive::tracking_type const&)in main.o 
    void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<boost::archive::object_reference_type>(boost::archive::object_reference_type const&)in main.o 
    void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<boost::archive::object_id_type>(boost::archive::object_id_type const&)in main.o 
    void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<unsigned int>(unsigned int const&)in main.o 
    void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<int>(int const&)in main.o 
    void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<boost::archive::class_id_reference_type>(boost::archive::class_id_reference_type const&)in main.o 
    void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<boost::archive::class_id_type>(boost::archive::class_id_type const&)in main.o 
"typeinfo for boost::archive::detail::basic_iserializer", referenced from: 
    typeinfo for boost::archive::detail::iserializer<boost::archive::text_iarchive, gps_position>in main.o 
"typeinfo for boost::serialization::typeid_system::extended_type_info_typeid_0", referenced from: 
    typeinfo for boost::serialization::extended_type_info_typeid<gps_position>in main.o 
"boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::text_oarchive_impl(std::basic_ostream<char, std::char_traits<char> >&, unsigned int)", referenced from: 
    boost::archive::text_oarchive::text_oarchive(std::basic_ostream<char, std::char_traits<char> >&, unsigned int)in main.o 
"boost::archive::detail::shared_ptr_helper::~shared_ptr_helper()", referenced from: 
    boost::archive::text_iarchive::~text_iarchive()in main.o 
    boost::archive::text_iarchive::~text_iarchive()in main.o 
"boost::serialization::typeid_system::extended_type_info_typeid_0::type_register(std::type_info const&)", referenced from: 
    boost::serialization::extended_type_info_typeid<gps_position>::extended_type_info_typeid()in main.o 
"boost::archive::detail::basic_oarchive::save_object(void const*, boost::archive::detail::basic_oserializer const&)", referenced from: 
    void boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::save_standard::invoke<gps_position>(boost::archive::text_oarchive&, gps_position const&)in main.o 
"boost::serialization::typeid_system::extended_type_info_typeid_0::is_less_than(boost::serialization::extended_type_info const&) const", referenced from: 
    vtable for boost::serialization::detail::singleton_wrapper<boost::serialization::extended_type_info_typeid<gps_position> >in main.o 
    vtable for boost::serialization::extended_type_info_typeid<gps_position>in main.o 
"boost::archive::detail::basic_oserializer::basic_oserializer(boost::serialization::extended_type_info const&)", referenced from: 
    boost::archive::detail::oserializer<boost::archive::text_oarchive, gps_position>::oserializer()in main.o 
"boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::~basic_text_oprimitive()", referenced from: 
    boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::~text_oarchive_impl()in main.o 
    boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::~text_oarchive_impl()in main.o 
    boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::~text_oarchive_impl()in main.o 
    boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::~text_oarchive_impl()in main.o 
    boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::~text_oarchive_impl()in main.o 
    boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::~text_oarchive_impl()in main.o 
ld: symbol(s) not found 

je ne comprends vraiment pas où je me trompe. mon code est exactement le même que l'exemple. quelqu'un peut-il expliquer comment résoudre ce problème?

+4

Avez-vous lié votre application agaist boost_serialization? – tune2fs

+0

J'ai des bibliothèques boost sous usr/lib et les fichiers include sous usr/include. Et je n'ai jamais eu de problèmes pour relier les bibliothèques en utilisant boost. – user2071581

+0

Parce que la plupart de boost est en-tête seulement. Pour augmenter la sérialisation, vous devez lier boost. Pouvez-vous s'il vous plaît montrer vos commandes de compilateur. – tune2fs

Répondre

3

Il semble que vous ne liez pas la sérialisation boost.

Faites un clic droit sur votre projet, allez dans Propriétés, sous l'onglet Construire recherchez Linker. Là, vous devez spécifier votre chemin de lien et vos bibliothèques dynamiques/statiques.

+0

Les bibliothèques boost sont dans le chemin par défaut (usr/lib). par exemple, en utilisant le graphe boost, je n'ai pas d'erreurs et je n'ai pas besoin d'ajouter le chemin dans les propriétés du projet. – user2071581

+0

Mais le graphique boost est en-tête uniquement, il n'a donc pas besoin d'être lié. La sérialisation est une bibliothèque et doit donc être liée: http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html#header-only-libraries – tune2fs

+0

cela fonctionne. merci pour votre patience! – user2071581

0

Vous devez être sûr que la version du compilateur qui compile votre application et votre bibliothèque boost est la même ... J'ai reçu un message d'erreur similaire lorsque j'essaie de lier une bibliothèque compile avec deux versions du compilateur g ++ 4.1 et g ++ 4.4 comme exemple ...