【问题标题】:unzipping a zip file with zlib/minizip: C/C++ Application使用 zlib/minizip 解压缩 zip 文件:C/C++ 应用程序
【发布时间】:2014-09-09 04:16:12
【问题描述】:

我的要求是解压缩我从 Linux 平台上的服务器接收到的 zip 文件。 现在我的C/C++ code 应该解压缩文件夹以接收json 文件。

我在网上做了研究,发现我可以使用 zlib 库来达到这个目的,但是 zlib 无法解压缩 .zip 文件,但它的 contrib 文件夹中有 minizip 可用于此目的.

推荐人:Simple way to unzip a .zip file using zlib

我下载了zlib源文件: zlib source code, version 1.2.8, zipfile format (678K, MD5 checksum 126f8676442ffbd97884eb4d6f32afb4)来自http://www.zlib.net/

现在我去zlib-1.2.8\contrib\minizip尝试编译miniunz.c

我尝试make all,但出现以下错误:

[@DELL-BUILD03 minizip]$ make
cc -c -O -I../.. miniunz.c
cc -c -O -I../.. unzip.c
cc -c -O -I../.. ioapi.c
make: *** No rule to make target `../../libz.a', needed by `miniunz'.  Stop.

我尝试手动将预编译的libz.a 放入zlib-1.2.8 文件夹中。

但仍然是同样的错误。 我该如何继续和unzip 一个示例json.zip 文件夹?

【问题讨论】:

  • 如果文件存在并且有足够的最后修改日期,它应该可以工作。不过,我建议您查看 code.google.com/p/miniz,非常好的单源文件 zip 处理程序。
  • 使用 make 构建 zlib 两个目录,它会在那里留下一个 libz.a。然后在 minizip 目录下 make。
  • @MarkAdler 我确实尝试将预编译的libz.a 放在那里,但仍然出现同样的错误。 zlib make 没有任何 targetbuild rule
  • @keltar 也尝试过miniz .. 我再次尝试使用它.. 为我的json.zip 使用预编译的example4 ----- 出现以下错误[DELL-BUILD03 bin_linux]$ ./example4 json.zip a.txt Input file size: 266631 tinfl_decompress_mem_to_callback() failed with status 0! [DELL-BUILD03 bin_linux]$
  • @keltar 试过miniz .. 它能够解压缩它自己压缩的文件.. 服务器接收到的文件出现上述错误.. 接收到的zip文件的结构是json.zip-> it contains one file 320458_0902_00_05_502cf.json

标签: c++ c zlib


【解决方案1】:

通过先在zlib-1.2.3 中运行make 然后在minizip 中运行来解决错误

【讨论】:

    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    相关资源
    最近更新 更多