LibZip库是解压缩zip文件的C库。
中文的网站目前还没有找到相关的编译方法,找了一篇英文文档加上自己的实验修改了一下:
编译步骤如下:
-
首先先下载CMake,我下载的是2.8版本。
-
libzip要引用 zlib 库所以要先下载,我下载的是 zlib-1.2.8,把它解压在如
C:LibZip文件夹中.
-
如果是在windows 64位的环境下,请在
C:LibZipCMakeLists.txt 的最后添加一下几行文本:
-
if(CMAKE_SIZEOF_VOID_P EQUAL 8 AND MSVC) set_target_properties(zlibstatic PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64") endif()
-
-
下载 libzip 库,我下载的是libzip-0.11.1,也将其解压在
C:LibZip文件夹中。 -
打开 VS2012本机工具命令提示。
-
输入以下命令:
cd C:LibZipzlib-1.2.8 -
然后输入命令:mkdir build 创建build文件夹
再输入命令:cd build 进入build文件夹
-
然后输入命令:cmake .. -G"Visual Studio 11" -DCMAKE_INSTALL_PREFIX="C:将安装路径设置为installedzlib"LibZipC:否则是默认的installedzlibLibZipC:Program Fileszlib. 如果是 64-bit Windows,则使用 "Visual Studio 11 Win64"作为-G的参数. -
然后输入命令:msbuild /P:Configuration=Debug INSTALL.vcxproj -
然后再输入命令:msbuild /P:Configuration=Release INSTALL.vcxproj -
:cd C:再输入命令LibZipzlib-1.2.8 -
mkdir build:输入命令创建build文件夹 -
再输入命令:cd build进入build文件夹
-
设置zlib库文件的路径,如果是 64-bit Windows,cmake .. -G"Visual Studio 11" -DCMAKE_PREFIX_PATH="输入命令:
C:"installedzlibLibZip则使用 "Visual Studio 11 Win64"作为-G的参数.
结果会生成 C:. 但是直接编译的话可能会遇到问题,要先更改以下几个地方:uildlibzip.slnLibZipzlib-1.2.8
将文件zipconf.h中的 #include <inttypes.h> 改为 #include <stdint.h>; 如果代码中的 snprintf 语句提示错误则将其改为要改为 _snprintf. 然后将C:libzip_set_file_compression.c文件中的第63行zip_int32_t old_method = (e->orig == NULL ? ZIP_CM_DEFAULT : e->orig->comp_method);的变量声明zip_int32_t old_method放在最前面,因为它是C代码文档。否则会出现莫名其妙的缺少“;”的错误。LibZipzlib-1.2.8