LibZip库是解压缩zip文件的C库。

中文的网站目前还没有找到相关的编译方法,找了一篇英文文档加上自己的实验修改了一下:

编译步骤如下:

  1. 首先先下载CMake,我下载的是2.8版本。

  2. libzip要引用 zlib 库所以要先下载,我下载的是 zlib-1.2.8,把它解压在如 C:\LibZip文件夹中.

  3. 如果是在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()
  4. 下载 libzip 库,我下载的是libzip-0.11.1,也将其解压在C:\LibZip文件夹中

  5. 打开 VS2012本机工具命令提示

  6. 输入以下命令:cd C:\LibZip\zlib-1.2.8

  7. 然后输入命令:mkdir build 创建build文件夹

  8. 再输入命令:cd build 进入build文件夹
  9. 然后输入命令:cmake .. -G"Visual Studio 11" -DCMAKE_INSTALL_PREFIX="C:\LibZip\installed\zlib"   将安装路径设置为 C:\LibZip\installed\zlib 否则是默认的 C:\Program Files\zlib. 如果是 64-bit Windows, 则使用 "Visual Studio 11 Win64" 作为 -G 的参数.

  10. 然后输入命令:msbuild /P:Configuration=Debug INSTALL.vcxproj

  11. 然后再输入命令:msbuild /P:Configuration=Release INSTALL.vcxproj

  12. 再输入命令:cd C:\LibZip\zlib-1.2.8

  13. 输入命令mkdir build  创建build文件夹

  14. 再输入命令: cd build  进入build文件夹

  15. 输入命令:
    cmake .. -G"Visual Studio 11" -DCMAKE_PREFIX_PATH="C:\LibZip\installed\zlib"
    设置zlib库文件的路径,如果是 64-bit Windows, 则使用 "Visual Studio 11 Win64" 作为 -G 的参数.

结果会生成 C:\LibZip\zlib-1.2.8\build\libzip.sln. 但是直接编译的话可能会遇到问题,要先更改以下几个地方:

将文件zipconf.h中的 #include <inttypes.h> 改为 #include <stdint.h>; 如果代码中的 snprintf 语句提示错误则将其改为要改为 _snprintf. 然后将C:\LibZip\zlib-1.2.8\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代码文档。否则会出现莫名其妙的缺少“;”的错误。

VS2012编译LibZip库的更多相关文章

  1. libzip开发笔记(一):libzip库介绍、编译和工程模板

      前言   Qt使用一些压缩解压功能,选择libzip库,libzip库比较原始,也是很多其他库的基础支撑库.   libzip   libzip是一个C库,用于读取,创建和修改zip档案.可以从数 ...

  2. libzip开发笔记(二):libzip库介绍、ubuntu平台编译和工程模板

    前言   Qt使用一些压缩解压功能,选择libzip库,libzip库比较原始,也是很多其他库的基础支撑库,编译过了windows版本,有需求编译一个ubuntu版本的,交叉编译需求的同样可参照本文章 ...

  3. VS2012 编译 Assimp

    VS2012 编译 Assimp 环境: assimp-3.1.1Windows 7 64BitVisual Studio 2012CMake 2.8.12.1 注意: 在Windows中编译assi ...

  4. 【转】VS2013编译libjpeg库

    原文地址:http://blog.csdn.net/weixinhum/article/details/42718959 现在,很多图像处理工具和开源库都给出了图像解码的函数接口,然而有时这些接口并不 ...

  5. vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录

    一.win7 32位电脑: vs2012编译的64位程序是没有问题的.但编译的32位程序在别的电脑(虚拟机模拟)出错: 感觉很无语,vs这么牛逼的东西,在设计时候都不考虑这些吗? 在自己电脑C:\Wi ...

  6. VS2012编译log4cpp1.1.1版本

    1.起因 看到官方网站上的log4cpp的代码已经更新到了1.1.1,而我目前使用的1.0.3版本,所以想使用下最新版本.在使用过程中发现相对于老版本,新版本的变化还是比较大的,特写下此文记录下. 2 ...

  7. VS2012编译Lua5.3.1

    编译静态库: 1.新建Win32控制台应用程序Lua5.3,下一步,应用程序类型选择:DLL,空项目,完成. 2.项目名右键属性,配置属性--项目默认值--配置类型:静态库(.lib) 3.头文件上右 ...

  8. VS2012 编译 boost1.53/ boost1.49

    原文链接:http://blog.csdn.net/ly131420/article/details/8904122 一.下载Boost库 boost_1_53_0.zip   (http://www ...

  9. 使用VS2012编译和使用C++ STL(STLport)

    使用VS2012编译和使用C++ STL(STLport) http://cstriker1407.info/blog/use-vs2012-to-compile-and-use-the-c-stl- ...

随机推荐

  1. android KK版本号,如何更改蓝牙设备类型

    mediatek/external/bluetooth/bt_cust/bt_cust_table.h   {         .name = "ClassOfDevice",   ...

  2. 在VS下用C语言连接SQLServer2008

    原文:在VS下用C语言连接SQLServer2008 step1:启动SQLSERVER服务 step2:打建立数据库test,在test库中建立test表(a varchar(200),b varc ...

  3. Linux C语言操作MySQL

    原文:Linux C语言操作MySQL 1.MySQL数据库简介 MySQL是一个开源码的小型关系数据库管理系统,体积小,速度快,总体成本低,开源.MySQL有以下特性: (1) 使用C和C++编写, ...

  4. JavaEE——Intellij Idea 创建JavaWeb项目

    原文:JavaEE--Intellij Idea 创建JavaWeb项目 折腾Tomcat折腾了两个晚上,第一个晚上怎么都进不了Tomcat的首页,第二个晚上进去了,但是新建的Web项目,在浏览器中运 ...

  5. mcstructs-MircoCStructs用C语言实现的微型数据结构库

    以C语言的方式,我将逐步实现以下算法: 我的Github地址为:https://github.com/tfa2012/mcstructs 1 线性链表 2 环形缓冲区 3 Hash表

  6. [译]ava 设计模式之享元

    (文章翻译自Java Design Pattern: Flyweight) 享元模式用于最小化内存开销.它做的就是使用其他相似的对象尽可能多的分享数据. 1.享元模式类图 2.享元模式Java代码 / ...

  7. 【SSRS】入门篇(七) -- 报表发布

    原文:[SSRS]入门篇(七) -- 报表发布 完成[SSRS]入门篇(六) -- 分组和总计后,第一份简单的报表就已完成了,下面把报表发布到报表服务器上. (实际情况下,报表展示给用户未必是用报表服 ...

  8. Office文档在线编辑的实现之二

    讲述了如何通过iis的webdav支持实现客户端的office直接编辑服务器上的文件,本篇将讲解如何实现客户端的office直接编辑数据库中的二进制形式保存的office文件. 实现的关键:模拟IIS ...

  9. bat批量目光声明

    写bat同一批次,盯着函数应使用.这个程序对可读性 在批处理,凝视节还有一种更常用的方法: goto start      = 能够是多行文本,能够是命令      = 能够包括重定向符号和其它特殊字 ...

  10. HttpRuntime详解分析

    HttpRuntime详解分析(上) 文章内容 从上章文章都知道,asp.net是运行在HttpRuntime里的,但是从CLR如何进入HttpRuntime的,可能大家都不太清晰.本章节就是通过深入 ...