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. nodejs开发aspnet5项目

    结合nodejs开发aspnet5项目 1.安装kvm   官方教程地址:https://github.com/ligershark/Kulture 打开 powershell命令窗口,找不到可以在开 ...

  2. expected number,sequence,or string.map evaluated instead of freemarker.template.smplehash

    expected number,sequence,or string.map evaluated instead of freemarker.template.smplehash 使用freemark ...

  3. SQL点滴32—Excel中CONCATENATE函数生成SQL语句

    原文:SQL点滴32-Excel中CONCATENATE函数生成SQL语句 当拿到一个Excel的时候需要将这里面的数据插入到数据库里面,该怎么办,除了使用SSIS数据导入之外还可以使用Excel中的 ...

  4. MVC 分页1 标准的url分页

    一. 将mvcpager ddl 引用到web服务项目中. 二. 在view加入 <%@ Import Namespace="Webdiyer.WebControls.Mvc" ...

  5. C#用Open与Add方法打开word文档的区别

    C#打开word文档常用有两种方法:Add与Open. Microsoft.Office.Interop.Word._Document doc = (Document)appWord.Document ...

  6. mysql的事物

    所谓的事物就是一组原子性的SQL语句,或者说是一个独立的工作单元. 1.事物拥有四大特征: ①原子性(atomicity):一个事物必须被分为一个不可分割的的最小单元,整个事物中的所有操作要么全部提交 ...

  7. cocos2dx对于强大的RichText控制

    最近准备做一个聊天系统,开始准备使用cocos2dx的UIRichText控制显示屏聊天,在使用中发现的结果,cocos2dx的RichText很有限.全然不具备实现聊天的功能.仅仅实现了增加文本.图 ...

  8. [翻译]初识SQL Server 2005 Reporting Services Part 1

    原文:[翻译]初识SQL Server 2005 Reporting Services Part 1 构建和部署基本报表 如果曾经存在一项工作使得“真正的”开发者给他的上司泡蘑菇,那就是构建报表.毕竟 ...

  9. Tabs - 选项卡插件

        接上篇Tabs  - 选项卡插件  其中12)Yet (E)Another Tab Interface没有依赖任何javascript框架,以作补充          9)Flipping C ...

  10. Oracle 11g+FluentNHibernate AutoMapping组合尝试

    一次Oracle 11g+FluentNHibernate AutoMapping组合尝试 本文的上下文环境 操作系统:Win7 x64 Ultimate开发工具:Visual Studio 2013 ...