Libarchive:如何在Windows上压缩存档?

时间:2016-08-26 20:13:00

标签: c++ libarchive

我正在尝试使用libarchive在Windows上创建压缩存档,目前它无法正常工作。我可以在没有压缩的情况下创建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);

我主要尝试使用zip格式的lzip压缩和pax_restricted格式的gzip压缩。

首先,我不确定是否应该使用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一样。

感谢您的帮助。

0 个答案:

没有答案