Libarchive: как сжать архив на windows?

Я пытаюсь создать сжатый архив на Windows с libarchive, и в настоящее время он не работает. Я могу создавать архивы zip или pax_restricted (tar) без сжатия, без каких-либо проблем.

Чтобы добавить сжатие, я попробовал несколько комбинаций из следующих:

archive_write_set_compression_lzip(lWriteArchive);
archive_write_add_filter_lzip(lWriteArchive);

archive_write_set_compression_gzip(lWriteArchive);
archive_write_add_filter_gzip(lWriteArchive);

archive_write_set_format_zip(lWriteArchive);
archive_write_set_format_pax_restricted(lWriteArchive);

В основном я пытался использовать сжатие lzip в формате zip и сжатие gzip в формате pax_restricted.

Во-первых, я не уверен, должен ли я использовать archive_write_set_compression_ * или archive_write_add_filter_ *.

Когда я пытаюсь добавить сжатие lzip, и я захожу в функцию, я вижу, что она возвращает ARCHIVE_FATAL с сообщением об ошибке «Сжатие lzma не поддерживается на этой платформе».

Когда я пытаюсь добавить сжатие gzip и вхожу в функцию, я вижу, что она возвращает ARCHIVE_WARN с сообщением об ошибке «Использование внешней программы gzip». Если я позволю процессу идти дальше, результирующий архив будет иметь нулевой размер.

У меня такое ощущение, что в системах Unix есть системные библиотеки для lzma и gzip, которые libarchive использует для сжатия и которые недоступны в Windows.

Я собрал libarchive с использованием последней стабильной версии, следуя инструкциям по использованию CMake и т. Д. Я не заметил никаких ошибок в конфигурации CMake, например, что мне не хватало lzma или gzip.

Спасибо за любую помощь.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]