VS2012编译LibZip库
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:\
将安装路径设置为
\installed\zlib"LibZip
C:\
否则是默认的
\installed\zlibLibZip
C:\Program Files\zlib
. 如果是 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:\
"
\installed\zlibLibZip
则使用 "Visual Studio 11 Win64"
作为-G
的参数.
结果会生成 C:\
. 但是直接编译的话可能会遇到问题,要先更改以下几个地方:
\build\libzip.sln
\LibZip
zlib-1.2.8
将文件zipconf.h中的 #include <inttypes.h>
改为 #include <stdint.h>
; 如果代码中的 snprintf
语句提示错误则将其改为要改为 _snprintf
. 然后将C:\
\lib\zip_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