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
VS2012编译LibZip库的更多相关文章
- libzip开发笔记(一):libzip库介绍、编译和工程模板
前言 Qt使用一些压缩解压功能,选择libzip库,libzip库比较原始,也是很多其他库的基础支撑库. libzip libzip是一个C库,用于读取,创建和修改zip档案.可以从数 ...
- libzip开发笔记(二):libzip库介绍、ubuntu平台编译和工程模板
前言 Qt使用一些压缩解压功能,选择libzip库,libzip库比较原始,也是很多其他库的基础支撑库,编译过了windows版本,有需求编译一个ubuntu版本的,交叉编译需求的同样可参照本文章 ...
- VS2012 编译 Assimp
VS2012 编译 Assimp 环境: assimp-3.1.1Windows 7 64BitVisual Studio 2012CMake 2.8.12.1 注意: 在Windows中编译assi ...
- 【转】VS2013编译libjpeg库
原文地址:http://blog.csdn.net/weixinhum/article/details/42718959 现在,很多图像处理工具和开源库都给出了图像解码的函数接口,然而有时这些接口并不 ...
- vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录
一.win7 32位电脑: vs2012编译的64位程序是没有问题的.但编译的32位程序在别的电脑(虚拟机模拟)出错: 感觉很无语,vs这么牛逼的东西,在设计时候都不考虑这些吗? 在自己电脑C:\Wi ...
- VS2012编译log4cpp1.1.1版本
1.起因 看到官方网站上的log4cpp的代码已经更新到了1.1.1,而我目前使用的1.0.3版本,所以想使用下最新版本.在使用过程中发现相对于老版本,新版本的变化还是比较大的,特写下此文记录下. 2 ...
- VS2012编译Lua5.3.1
编译静态库: 1.新建Win32控制台应用程序Lua5.3,下一步,应用程序类型选择:DLL,空项目,完成. 2.项目名右键属性,配置属性--项目默认值--配置类型:静态库(.lib) 3.头文件上右 ...
- VS2012 编译 boost1.53/ boost1.49
原文链接:http://blog.csdn.net/ly131420/article/details/8904122 一.下载Boost库 boost_1_53_0.zip (http://www ...
- 使用VS2012编译和使用C++ STL(STLport)
使用VS2012编译和使用C++ STL(STLport) http://cstriker1407.info/blog/use-vs2012-to-compile-and-use-the-c-stl- ...
随机推荐
- addEventListener 与attachEvent
第一:简单的通用方法(IE && FF) window.onload = function(){ var oDiv = document.getElementById("J_ ...
- 推荐几个靠谱的VPN
最近开发scala程序使用sbt构建工程时,下载很慢,有些依赖只能通过VPN才能下载下来.在网上搜索了一大堆提供VPN服务的.有一大部分不提供试用,而且还必须得按年购买,看起来是像骗子. 在这里推荐几 ...
- CreateMutex
C++ API CreateMutex 找出当前系统是否已经存在指定进程的实例.假设没有则创建一个相互排斥体.CreateMutex()函数可用来创建一个有名或无名的相互排斥量对象. HANDLE C ...
- Asp.Net MVC4 + Oracle + EasyUI + Bootstrap
Asp.Net MVC4 + Oracle + EasyUI + Bootstrap --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.ht ...
- Windows安全事件日志中的事件编号与描述
帐号登录事件(事件编号与描述) 672 身份验证服务(AS)票证得到成功发行与验证.673 票证授权服务(TGS)票证得到授权.TGS是一份由Kerberos 5.0版票证授权服务(TGS)发行.且允 ...
- 【android】WebView缓存数据收集
Android WebView 缓存 Android高手进阶教程(二十四)之---Android WebView的缓存!!! Android webView 缓存 Cache + HTML5离线功能 ...
- C语言实现全排列
实现全排列,递归实现 #include <stdio.h> #include <stdlib.h> ; void swap(int *a, int *b) { int m; m ...
- leetcode[68] Climbing Stairs
n个台阶,每次可以走一步或者两步,总共有多少种走法. 第一感觉想到的是递归,n为1的时候1种,2的时候2中.其他时候就是 fun(n) = fun(n-1) + fun(n-2);递归的代码很简单.如 ...
- SQL Server 后续去除功能汇总
原文:SQL Server 后续去除功能汇总 功能更新去除汇总 字段类型 在 Microsoft SQL Server 的未来版本中将删除 ntext.text 和 image 数据类型. 请避免在新 ...
- 邮箱自动完成(jquary效果)
邮箱自动完成的效果在网站上大多都看过,但是质量参差不齐,今天突然在网上看到一篇博客,感觉这个插件很好,就想来写一下分享给大家! 效果图如下! 完整demo代码如下: <!DOCTYPE html ...