IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Boost C++ Discussion :

Serialisation avec Boost


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Par défaut Serialisation avec Boost
    Bonjour, pour un projet personnel j'ai besoin de la sérialisation.

    Installation à priori pas de soucis mais dès que j'essaye l'exemple proposé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    #include <fstream>
     
    #include <boost/archive/text_oarchive.hpp>
    #include <boost/archive/text_iarchive.hpp>
     
    class Note
    {
    private:
            friend class boost::serialization::access;
     
            template<class Archive>
            void serialize(Archive & ar, const unsigned int version) {
                    ar & numerateur;
                    ar & denominateur;
            }
     
            int numerateur;
            int denominateur;
    public:
            Note() {};
            Note(int n, int d) :
                            numerateur(n), denominateur(d) {}
    };
     
     
    int main()
    {
            std::ofstream ofs("fichierDeSerialisation");
     
            // Vous avez vu comme je travaille bien ? :)
            const Note maNoteDePhysisque(20,20);
     
     
            {
                    boost::archive::text_oarchive oa(ofs);
                    oa << maNoteDePhysisque;
            }
     
            /** Quelque temps plus tard… ***/
     
            Note monAncienneNote;
     
            {
                    std::ifstream ifs("fichierDeSerialisation");
                    boost::archive::text_iarchive ia(ifs);
     
                    ia >> monAncienneNote;
            }
     
            return 0;
    }
    J'obtient les erreurs suivante a la compilation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    ||=== Test, Debug ===|
    obj/Debug/main.o||In function `text_oarchive':|
    /usr/include/boost/archive/text_oarchive.hpp|100|undefined reference to `boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::text_oarchive_impl(std::basic_ostream<char, std::char_traits<char> >&, unsigned int)'|
    obj/Debug/main.o||In function `text_iarchive':|
    /usr/include/boost/archive/text_iarchive.hpp|141|undefined reference to `boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::text_iarchive_impl(std::basic_istream<char, std::char_traits<char> >&, unsigned int)'|
    /usr/include/boost/archive/text_iarchive.hpp|141|undefined reference to `boost::archive::detail::shared_ptr_helper::shared_ptr_helper()'|
    obj/Debug/main.o||In function `~text_iarchive':|
    /usr/include/boost/archive/text_iarchive.hpp|143|undefined reference to `boost::archive::detail::shared_ptr_helper::~shared_ptr_helper()'|
    obj/Debug/main.o||In function `~text_oarchive_impl':|
    /usr/include/boost/archive/text_oarchive.hpp|85|undefined reference to `boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::~basic_text_oprimitive()'|
    /usr/include/boost/archive/text_oarchive.hpp|85|undefined reference to `boost::archive::basic_text_oprimitive<std::basic_ostream<char, std::char_traits<char> > >::~basic_text_oprimitive()'|
    obj/Debug/main.o||In function `~text_iarchive_impl':|
    /usr/include/boost/archive/text_iarchive.hpp|92|undefined reference to `boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::~basic_text_iprimitive()'|
    /usr/include/boost/archive/text_iarchive.hpp|92|undefined reference to `boost::archive::basic_text_iprimitive<std::basic_istream<char, std::char_traits<char> > >::~basic_text_iprimitive()'|
    obj/Debug/main.o||In function `~common_oarchive':|
    /usr/include/boost/archive/detail/common_oarchive.hpp|35|undefined reference to `boost::archive::detail::basic_oarchive::~basic_oarchive()'|
    obj/Debug/main.o||In function `~common_iarchive':|
    /usr/include/boost/archive/detail/common_iarchive.hpp|38|undefined reference to `boost::archive::detail::basic_iarchive::~basic_iarchive()'|
    obj/Debug/main.o||In function `void boost::archive::detail::save_non_pointer_type<boost::archive::text_oarchive>::save_standard::invoke<Note>(boost::archive::text_oarchive&, Note const&)':|
    /usr/include/boost/archive/detail/oserializer.hpp|253|undefined reference to `boost::archive::detail::basic_oarchive::save_object(void const*, boost::archive::detail::basic_oserializer const&)'|
    obj/Debug/main.o||In function `void boost::archive::detail::load_non_pointer_type<boost::archive::text_iarchive>::load_standard::invoke<Note>(boost::archive::text_iarchive&, Note const&)':|
    /usr/include/boost/archive/detail/iserializer.hpp|387|undefined reference to `boost::archive::detail::basic_iarchive::load_object(void*, boost::archive::detail::basic_iserializer const&)'|
    obj/Debug/main.o||In function `oserializer':|
    /usr/include/boost/archive/detail/oserializer.hpp|112|undefined reference to `boost::archive::detail::basic_oserializer::basic_oserializer(boost::serialization::extended_type_info const&)'|
    obj/Debug/main.o||In function `~oserializer':|
    /usr/include/boost/archive/detail/oserializer.hpp|133|undefined reference to `boost::archive::detail::basic_oserializer::~basic_oserializer()'|
    obj/Debug/main.o||In function `iserializer':|
    /usr/include/boost/archive/detail/iserializer.hpp|133|undefined reference to `boost::archive::detail::basic_iserializer::basic_iserializer(boost::serialization::extended_type_info const&)'|
    obj/Debug/main.o||In function `~iserializer':|
    /usr/include/boost/archive/detail/iserializer.hpp|158|undefined reference to `boost::archive::detail::basic_iserializer::~basic_iserializer()'|
    obj/Debug/main.o||In function `extended_type_info_typeid':|
    /usr/include/boost/serialization/extended_type_info_typeid.hpp|87|undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::extended_type_info_typeid_0(char const*)'|
    /usr/include/boost/serialization/extended_type_info_typeid.hpp|89|undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::type_register(std::type_info const&)'|
    /usr/include/boost/serialization/extended_type_info_typeid.hpp|90|undefined reference to `boost::serialization::extended_type_info::key_register() const'|
    /usr/include/boost/serialization/extended_type_info_typeid.hpp|87|undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::~extended_type_info_typeid_0()'|
    obj/Debug/main.o||In function `~extended_type_info_typeid':|
    /usr/include/boost/serialization/extended_type_info_typeid.hpp|93|undefined reference to `boost::serialization::extended_type_info::key_unregister() const'|
    /usr/include/boost/serialization/extended_type_info_typeid.hpp|94|undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::type_unregister()'|
    /usr/include/boost/serialization/extended_type_info_typeid.hpp|95|undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::~extended_type_info_typeid_0()'|
    /usr/include/boost/serialization/extended_type_info_typeid.hpp|95|undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::~extended_type_info_typeid_0()'|
    ]+0x10)||undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::is_less_than(boost::serialization::extended_type_info const&) const'|
    ]+0x18)||undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::is_equal(boost::serialization::extended_type_info const&) const'|
    ]+0x10)||undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::is_less_than(boost::serialization::extended_type_info const&) const'|
    ]+0x18)||undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::is_equal(boost::serialization::extended_type_info const&) const'|
    ]+0x18)||undefined reference to `typeinfo for boost::serialization::typeid_system::extended_type_info_typeid_0'|
    ]+0x10)||undefined reference to `typeinfo for boost::archive::detail::basic_iserializer'|
    ]+0x10)||undefined reference to `typeinfo for boost::archive::detail::basic_oserializer'|
    ]+0x18)||undefined reference to `typeinfo for boost::archive::detail::basic_iarchive'|
    ]+0x18)||undefined reference to `typeinfo for boost::archive::detail::basic_oarchive'|
    obj/Debug/main.o||In function `boost::archive::text_iarchive& boost::archive::detail::interface_iarchive<boost::archive::text_iarchive>::operator>><boost::archive::class_name_type>(boost::archive::class_name_type&)':|
    /usr/include/boost/archive/detail/interface_iarchive.hpp|60|undefined reference to `boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::load_override(boost::archive::class_name_type&, int)'|
    obj/Debug/main.o||In function `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&)':|
    /usr/include/boost/serialization/smart_cast.hpp|78|undefined reference to `typeinfo for boost::archive::detail::basic_iarchive'|
    obj/Debug/main.o||In function `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&)':|
    /usr/include/boost/serialization/smart_cast.hpp|78|undefined reference to `typeinfo for boost::archive::detail::basic_oarchive'|
    obj/Debug/main.o||In function `void boost::archive::save_access::save_primitive<boost::archive::text_oarchive, boost::archive::version_type>(boost::archive::text_oarchive&, boost::archive::version_type const&)':|
    /usr/include/boost/archive/detail/oserializer.hpp|87|undefined reference to `boost::archive::detail::basic_oarchive::end_preamble()'|
    obj/Debug/main.o||In function `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&)':|
    /usr/include/boost/archive/detail/oserializer.hpp|87|undefined reference to `boost::archive::detail::basic_oarchive::end_preamble()'|
    obj/Debug/main.o||In function `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&)':|
    /usr/include/boost/archive/detail/oserializer.hpp|87|undefined reference to `boost::archive::detail::basic_oarchive::end_preamble()'|
    obj/Debug/main.o||In function `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&)':|
    /usr/include/boost/archive/detail/oserializer.hpp|87|undefined reference to `boost::archive::detail::basic_oarchive::end_preamble()'|
    obj/Debug/main.o||In function `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&)':|
    /usr/include/boost/archive/detail/oserializer.hpp|87|undefined reference to `boost::archive::detail::basic_oarchive::end_preamble()'|
    obj/Debug/main.o:/usr/include/boost/archive/detail/oserializer.hpp|87|more undefined references to `boost::archive::detail::basic_oarchive::end_preamble()' follow|
    obj/Debug/main.o||In function `void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<boost::archive::object_id_type>(boost::archive::object_id_type const&)':|
    /usr/include/boost/archive/text_oarchive.hpp|60|undefined reference to `boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::newtoken()'|
    obj/Debug/main.o||In function `void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<boost::archive::object_reference_type>(boost::archive::object_reference_type const&)':|
    /usr/include/boost/archive/text_oarchive.hpp|60|undefined reference to `boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::newtoken()'|
    obj/Debug/main.o||In function `void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<boost::archive::class_id_type>(boost::archive::class_id_type const&)':|
    /usr/include/boost/archive/text_oarchive.hpp|60|undefined reference to `boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::newtoken()'|
    obj/Debug/main.o||In function `void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<boost::archive::class_id_reference_type>(boost::archive::class_id_reference_type const&)':|
    /usr/include/boost/archive/text_oarchive.hpp|60|undefined reference to `boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::newtoken()'|
    obj/Debug/main.o||In function `void boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::save<boost::archive::tracking_type>(boost::archive::tracking_type const&)':|
    /usr/include/boost/archive/text_oarchive.hpp|60|undefined reference to `boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::newtoken()'|
    obj/Debug/main.o:/usr/include/boost/archive/text_oarchive.hpp|60|more undefined references to `boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::newtoken()' follow|
    obj/Debug/main.o||In function `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&)':|
    /usr/include/boost/archive/basic_text_oprimitive.hpp|89|undefined reference to `boost::archive::archive_exception::archive_exception(boost::archive::archive_exception::exception_code, char const*, char const*)'|
    /usr/include/boost/archive/basic_text_oprimitive.hpp|89|undefined reference to `boost::archive::archive_exception::~archive_exception()'|
    ||More errors follow but not being shown.|
    ||Edit the max errors limit in compiler options...|
    ||=== Build finished: 50 errors, 0 warnings ===|
    J'y comprend pas grand chose une aide serais plus que bienvenue

    C'est mon premier vrais projet en c++ jusqu'ici je n'ai fait que des petits programmes simple

    Merci d'avance

    Lepton_42

    IDE : Code::Block
    OS : Kubuntu 12.10

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    Tu as probablement oublié d'ajouter les libs de Boost.Serialization à ton linker.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Par défaut
    C'est sans doute ça :p

    Mais ... Je fait comment?

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533

Discussions similaires

  1. Aide Serialisation avec boost ou autre
    Par b3lka dans le forum C++
    Réponses: 1
    Dernier message: 05/12/2013, 13h00
  2. serialisation d'iterateur de liste avec Boost::serialization
    Par CedricMocquillon dans le forum Boost
    Réponses: 2
    Dernier message: 22/08/2008, 18h02
  3. probleme de compilation avec boost
    Par doof dans le forum Bibliothèques
    Réponses: 7
    Dernier message: 07/06/2005, 21h38
  4. Calculer un inverse de matrice avec boost?
    Par Clad3 dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 02/06/2005, 18h38
  5. probleme avec boost et devcpp
    Par Krost dans le forum Dev-C++
    Réponses: 12
    Dernier message: 02/01/2005, 19h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo