LibZip库是解压缩zip文件的C库。
中文的网站目前还没有找到相关的编译方法,找了一篇英文文档加上自己的实验修改了一下:
编译步骤如下:
-
首先先下载CMake,我下载的是2.8版本。
-
libzip要引用 zlib 库所以要先下载,我下载的是 zlib-1.2.8,把它解压在如
C:LibZip文件夹中
.
-
如果是在windows 64位的环境下,请在
C:LibZip
CMakeLists.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:
LibZip
zlib-1.2.8 -
然后输入命令:mkdir build 创建build文件夹
再输入命令:
cd build 进入build文件夹
-
然后输入命令:cmake .. -G"Visual Studio 11" -DCMAKE_INSTALL_PREFIX="C:
将安装路径设置为
installedzlib"LibZip
C:
否则是默认的
installedzlibLibZip
C:Program Fileszlib
. 如果是 64-bit Windows,则使用 "Visual Studio 11 Win64"
作为-G
的参数. -
然后输入命令:msbuild /P:Configuration=Debug INSTALL.vcxproj
-
然后再输入命令:
msbuild /P:Configuration=Release INSTALL.vcxproj -
:cd C:再输入命令
LibZip
zlib-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.slnLibZip
zlib-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代码文档。否则会出现莫名其妙的缺少“;”的错误。LibZip
zlib-1.2.8