"libzipp" 这库是基于 "libzip" 之上封装的,而 "libzip" 又是基于 "zlib"库封装的,所以要编译 "libzipp" 库就要先编译其他两个库。
下载准备:
"zlib-1.2.8.tar.gz"
"libzip-1.0.1.tar.gz"
"libzippp-master.zip"

编译环境:cmake + vs2013 ,   安装好cmake和 "VS2013 x86 本机工具命令提示" 工具(安装vs2013的时候已经有)
命令行环境使用的是[VS2013 x86 本机工具命令提示],“开始”->"Visual Studio 2013"->"Visual Studio Tools"->"VS2013 x86 本机工具命令提示"

以下是本次编译过程,记录详细流程以备忘:

一、编译 zlib 库
1、将解压出来的 "zlib-1.2.8" 文件夹拷贝到 "E:\BuildWorkspace\" ;
2、命令行进入此路径,命令:[mkdir build] (创建 build 文件夹) ;
3、进入刚创建的"build"文件夹,命令:[cmake .. -G"Visual Studio 9 2008" -DCMAKE_INSTALL_PREFIX="install"]  (构建工程)
4、在"build"目录下就有了工程文件,打开工程,编译"ALL_BUILD"项目生成库文件,编译"INSTALL"项目,会执行工程目录下的"cmake_install.cmake"脚本,最终在"build"目录下生成"install"文件夹,头文件、库文件等都在文件夹内了。

二、编译 libzip 库
1、将解压出来的"libzip-1.0.1"文件夹拷贝到"E:\BuildWorkspace\" ;
2、命令行进入此路径,命令:[mkdir build] (创建 build 文件夹) ;
3、进入刚创建的"build"文件夹,命令:[cmake .. -G"Visual Studio 9 2008" -DCMAKE_PREFIX_PATH="../zlib-1.2.8/build/install"]  (构建工程)
4、在"build"目录下就有了工程文件,打开工程,编译"ALL_BUILD"项目,到这里就报错了(最少我在这里是报错了) ;
5、将"libzippp-master\lib\libzip-1.0.1-windows-patch.zip"的压缩文件解压出来,根据同名文件夹替换掉相应的文件,在执行第4步,OK ;
6、此时如果直接编译"INSTALL"项目,会生成到C盘根目录下"C:/Program Files (x86)/libzip"文件夹中,为了让它生成到"build\install"中,这里需要修改工程目录下的"cmake_install.cmake"脚本文件的第5行:
"set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/libzip")" 改成
"set(CMAKE_INSTALL_PREFIX "E:\BuildWorkspace\libzip-1.0.1\build/install")",
7、编译"INSTALL"->OK ;

三、编译 libzippp 库
1、将解压出来的"libzippp-master"文件夹拷贝到"E:\BuildWorkspace\" ;(PS:上面编译 libzip 库中的第五步就是在从此文件夹中找的"libzippp-master\lib\libzip-1.0.1-windows-patch.zip")
2、命令行进入此路径,命令:[mkdir build] (创建 build 文件夹) ;
3、为了方便 libzippp 项目的依赖关系,懒得修改,直接按照作者意思,把上面的 "libzip-1.0.1" 和 "zlib-1.2.8" 文件夹整个拷贝到 "E:\BuildWorkspace\libzippp-master\lib\" 目录中(当前,前提是已经完成了上面的编译工作);
4、进入刚创建的"build"文件夹,命令:[cmake .. -G"Visual Studio 12" -DCMAKE_PREFIX_PATH="lib/zlib-1.2.8/build/install"] (构建工程)
5、在"build"目录下就有了工程文件,打开工程,编译"ALL_BUILD"项目,OK!

PS:实测,用vs2008使用这库会有问题(可能是因为是用vs2013编译的缘故),后来干脆直接使用 libzippp 的类文件,不编译成库使用,OK!

zlib、libzip、 libzippp 库编译(windows + cmake + vs2013)的更多相关文章

  1. jpeg库编译 - windows平台

    一.准备: 下载最新的jpeg库源码:http://www.ijg.org/files/jpegsr9a.zip二.编译 1. 解压到指定目录 2. 打开VS2010命令行窗口(为了得到VS2010的 ...

  2. zlib开发笔记(四):zlib库介绍、编译windows vs2015x64版本和工程模板

    前言   Qt使用一些压缩解压功能,介绍过libzip库编译,本篇说明zlib库.需要用到zlib的msvc2015x64版本,编译一下.   版本编译引导 zlib在windows上的mingw32 ...

  3. 判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库

    判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库 TLDR 只考虑windows下opencv预编译包的情况. 对于opencv2.4.x系列,cmake ...

  4. windows zlib库编译步骤

    下载地址 http://www.zlib.net/ 动态库下载地址 如果自己实在不想编译的,可以直接下载 https://download.csdn.net/download/zhangxuechao ...

  5. 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用)

    目录 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用) 背景 下载地址 仓库地址 安装部署 msys2 安装 配置环境变量 ...

  6. windows下编译nginx+nginx_rtmp_modue(vs2013)

    阅读官方编译windows版本的方法 http://nginx.org/en/docs/howto_build_on_win32.html 我的环境 Windows 7 Ultimate 64,Vis ...

  7. go 工具链目前[不支持编译 windows 下的动态链接库][1],不过[支持静态链接库][2]

    go 工具链目前[不支持编译 windows 下的动态链接库][1],不过[支持静态链接库][2].想要产生dll,可以这样 workaround ,参考 golang [issuse#11058][ ...

  8. cmake 编译windows程序

    cmake 编译windows程序 cmake 编译windows程序 cmake 编译windows程序 尽量使用  尽量使用 尽量使用 https://www.cnblogs.com/liujia ...

  9. FFmpeg笔记:使用MSVC工具链编译Windows版本静态库、动态库

    2019年3月开始,为了将音视频编解码功能集成到Cocos2d-x中,开始接触到FFmpeg: 当时开发环境还在Mac下,编译FFmpeg相比现在用Windows平台要方便的多: 最近,公司内部有个U ...

随机推荐

  1. Dapper基础增删查改、事务和存储过程

    1.前言 Dapper是一个轻量级的orm框架,上手也非常的简单,它可以实体映射,所以先准备实体如下: public class Couser { public int id { get; set; ...

  2. Android获取状态栏的高度:

    方法一: //获取手机状态栏高度 public static int getStatusBarHeight(Context context){ Class<?> c = null; Obj ...

  3. 统计大写字母个数&压缩和去重(过滤)

    找出给定字符串中大写字符(即'A'-'Z')的个数 接口说明 原型:int CalcCapital(String str); 返回值:int 知识点 字符串 运行时间限制 10M 内存限制 128 输 ...

  4. laravel5.5容器

    目录 1. 比较典型的例子就是 cache 缓存 2. 容器顾名思义,其实就是完成存取过程 2.1 绑定过程 简单绑定 绑定单例 绑定实例 绑定初始数据 2.2 解析过程 容器主要是为了实现控制反转, ...

  5. 《Cracking the Coding Interview》——第4章:树和图——题目5

    2014-03-19 04:11 题目:设计算法检查一棵二叉树是否为二叉搜索树. 解法:既然是二叉搜索树,也就是说左子树所有节点都小于根,右子树所有节点都大于根.如果你真的全都检查的话,那就做了很多重 ...

  6. isinstance()判断数据类型

    判断数据类型isinstance()l=[1,2,3]print(isinstance(l,list))#括号里面第一个填需要判断的数据,第二个是判断条件

  7. 孤荷凌寒自学python第四天 安装python的其它IDE环境

    孤荷凌寒自学python第四天 安装python的其它IDE环境 (完整学习过程屏幕记录视频地址在文末) 因为是完全的新手,对python环境搭建完全一无所知,因此,可真是大费周章才配置了其它多个Id ...

  8. glance上传镜像

    glance image-create --name "centos68-test" --file centos68.dsk \ --disk-format raw --conta ...

  9. 对于进程没杀死占用内存和cpu行为的方法

    在跑机器学习或者深度学习的过程中有可能遇到没杀死进程的情况,但是程序的入口又没关掉,尤其是我使用jupyter从远程Linux映射到windows浏览器跑程序的时候 对于上面的问题, 首先运行 hto ...

  10. [Leetcode/Javascript] 461.Hamming Distance

    [Leetcode/Javascript] 461.Hamming Distance 题目 The Hamming distance between two integers is the numbe ...