Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Сериализация данных


Автор: cupper 14.7.2010, 14:03
Есть класс, данные экземпляров этого класса нужно сериализовать, для того что бы потом передать и соответственно после передачи распарсить в удобочитаемый вид (опять в этот класс).
Знаю есть библиотека libxml2? постмарел на нее но пока почти ничего не понял. 
Как лучше/проще/правильней это сделать ? 

Первое что приходит в голову это сделать все самому, но это долго, будет куча ошибок и совсем неправильно.

PS. в название темы не хилая описка "сериализация"

Автор: boostcoder 14.7.2010, 17:25
boost.serialization
лучше не найдешь smile 

Автор: cupper 14.7.2010, 18:09
да, пора бы уже оторвать от голого С++, и начинать осваивать либы

Автор: cupper 16.7.2010, 18:30
boost::serialization - много и непонятно smile
Вопрос к тем что уже работал с boost и сераилизацией. 
Если сериализовать экземпляр класса в XML представление через описанную выше либу, то как оно вообще будет хранить ? как строка, как некий сложный объект ? с какой стороны не подойду все равно не могу понять самого основного :(

Автор: boostcoder 16.7.2010, 18:47
Цитата(cupper @  16.7.2010,  18:30 Найти цитируемый пост)
как оно вообще будет хранить ?

после сериализации и до десериализации?
xml - не лучший выбор, особенно если нужно передавать по сети. куча избыточной информации.

Автор: cupper 16.7.2010, 20:45
Начал читать доку, вот там есть пример
http://www.boost.org/doc/libs/1_43_0/libs/serialization/example/demo.cpp
конечно не все мне от тудова понятно, но я даже собрать его не могу чтобы потыкать в него, наверняка нужно какие нить флаги компиляции выставить или еще чего, но я как ёжик в тумане :(
Либу libboost-dev установил.

Вылазает страшная куча вот такиъ ошибок
Код

/tmp/cckR8L0U.o: In function `boost::archive::text_oarchive::text_oarchive(std::basic_ostream<char, std::char_traits<char> >&, unsigned int)':
demo.cpp:(.text._ZN5boost7archive13text_oarchiveC1ERSoj[boost::archive::text_oarchive::text_oarchive(std::basic_ostream<char, std::char_traits<char> >&, unsigned int)]+0x1b): 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)'

Автор: boostcoder 17.7.2010, 01:10
не понятно что за содержание у поста выше. расставьте все по местам.

Автор: cupper 18.7.2010, 19:50
там просто очень длинные текст ошибки из за этого ползет за экран, убрал лишние цитирование что было понаглядней

Автор: boostcoder 18.7.2010, 22:49
к опциям линкера добавьте "-lboost_serialization"

Автор: cupper 18.7.2010, 23:12
Код

/usr/bin/ld: cannot find -lboost_serialization

мб нужно было какие то пути прописать или переменные окружения ? Или отдельно установить именно эту либу ?

PS. отдельно щас доустановил libboost-serialization-dev, но все равно тоже самое.

И еще вопросик: каждую компоненту boost нужно отдельно устанавливать ? О_о

Автор: boostcoder 18.7.2010, 23:22
какая ОС?

Добавлено через 50 секунд
т.е. то что линукс - понятно. какой линукс?

зы
мордеры, перенесите тему в соответствующий раздел.

Автор: cupper 18.7.2010, 23:28
Ubuntu 9.10, да вроде в том разделе создал

Автор: boostcoder 18.7.2010, 23:52
с именем либы все ок.
проверьте, есть ли ба на самом деле в каталоге "/usr/lib"

Автор: cupper 18.7.2010, 23:56
Код

ls /ust/lib | grep boost
...
libboost_serialization-mt.a
libboost_serialization-mt.so
libboost_serialization-mt.so.1.38.0
...


Код

-lboost_serialization-mt

чтобы значили эти mt ?)
Спс за помощь

Автор: boostcoder 19.7.2010, 05:50
Цитата(cupper @  18.7.2010,  23:56 Найти цитируемый пост)
чтобы значили эти mt ?

MultiThreaded

Автор: cupper 19.7.2010, 08:30
т.е. потокобезопасны ? Опять непонятно, причем тут сериализация и мультрединг, когда для тредов в boost есть 
Код

libboost_thread-mt.a
libboost_thread-mt.so
libboost_thread-mt.so.1.38.0

Автор: boostcoder 19.7.2010, 11:54
долго объяснять. смотри в доке по сборке boost.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)