boost :: archive :: binary_ (i / o) переносимость архива - PullRequest
1 голос
/ 15 ноября 2011

Является ли расширенный двоичный архив «переносимым» с одной машины Linux x86_64 на другую машину Linux x86_64?

Документация предполагает, что, используя термин native binary, я пока не смогсделать это.Это «моя вина» или это невозможно?

Я знаю о переносимых двоичных архивах, но я понимаю, что они плохо проверены ...

РЕДАКТИРОВАТЬ: Кроме тогона ответ SoapBox я понял, что версия библиотеки Boost должна быть одинаковой на обеих машинах

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Если обе машины имеют одинаковую версию 64-битного Linux на процессоре x86-64, то вам не нужен какой-либо специальный код или параметры «переносимости». Бинарные форматы этих двух машин по определению идентичны. Если один компьютер может загрузить архив, другой - тоже.

Это не гарантируется, но, как правило, верно для разных ОС, если базовое оборудование одинаково. (То есть 64-битные окна на x86-64 должны иметь возможность загружать архив, созданный на 64-битном Linux x86-64.)

Если процессоры разные, то вам нужно будет использовать «портативный» формат архива. Текстовые архивы Boost.Serialization должны быть переносимыми, потому что преобразование в непереносимое двоичное представление выполняется из текста в архиве во время загрузки.

0 голосов
/ 19 апреля 2019

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

https://www.boost.org/doc/libs/1_70_0/libs/serialization/example/

Следующие файлы в значительной степени скопированы и вставлены в ваш проект:

portable_binary_archive.hpp

portable_binary_oarchive.cpp

portable_binary_oarchive.hpp

portable_binary_iarchive.cpp

portable_binary_iarchive.hpp

Классы portable_binary_oarchive и portable_binary_iarchive могут использоваться в качестве dropins вместо, например, текстовых или непереносимых двоичных архивных классов.

...