Salut à tous! J'ai récemment essayé d'utiliser Boost::Serialization pour sauvegarder les données d'une carte dans un fichier. Je me suis don basé sur cet exemple.
Du fait de nombreuses erreurs, j'ai crée un autre projet, le plus simple possible, reprenant l'organisation des classes à sérialiser de mon programme; malgrès tout, je n'ai pas réussi a compiler.
Voici mon code:
main.cpp:
#include <fstream>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include "Carte.h"
int main()
{
std::ofstream ofs("carte.txt");
Carte carte1;
carte1.create(13,12,15);
{
const Carte carte2 = carte1;
boost::archive::text_oarchive oa(ofs);
oa << carte2;
}
Carte carte3;
{
std::ifstream ifs("carte.txt", std::ios::binary);
boost::archive::text_iarchive ia(ifs);
ia >> carte3;
}
return0;
}
Carte.h:
#ifndef CARTE_H_INCLUDED
#define CARTE_H_INCLUDED
# include <vector>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include "Couche.h"
class Carte
{
friendclass boost::serialization::access;
public:
Carte();
~Carte();
void create(int numero_chipset, int hauteur=20, int largeur=20);
for(int i = 0; i <(m_hauteur*m_largeur); i++) ar & m_data[i];
}
Merci a ceux qui ont tout lu. J'ai linké avec -lboost_serialization et -lsfml-system.
J'ai volontairement tout mis en public.
Voici le log:
/usr/include/boost/serialization/access.hpp:109: undefined reference to `void Carte::serialize<boost::archive::text_iarchive>(boost::archive::text_iarchive&, unsigned int)'
/usr/include/boost/serialization/access.hpp:109: undefined reference to `void Carte::serialize<boost::archive::text_oarchive>(boost::archive::text_oarchive&, unsigned int)'
:: === Build finished: 2 errors, 0 warnings ===
A+,
Loumnam.
Demande d'aide pour Boost::Serialization
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.