vs2015编译zlib静态库步骤
ZLIB静态库的编译
- 下载ZLIB源码
ZLib官网下载或者GitHub上直接 clone 下来即可
截至目前最新版本1.2.1.1本
如下图我选择从官网下载
下载完以后解压得到源代码目录结构大致如下
amiga
├─contrib
│ ├─ada
│ ├─amd64
│ ├─asm686
│ ├─blast
│ ├─delphi
│ ├─dotzlib
│ │ └─DotZLib
│ ├─gcc_gvmat64
│ ├─infback9
│ ├─inflate86
│ ├─iostream
│ ├─iostream2
│ ├─iostream3
│ ├─masmx64
│ ├─masmx86
│ ├─minizip
│ ├─pascal
│ ├─puff
│ ├─testzlib
│ ├─untgz
│ └─vstudio
│ ├─vc10
│ ├─vc11
│ ├─vc12
│ ├─vc14
│ │ └─x86
│ │ ├─MiniUnzipDebug
│ │ │ └─Tmp
│ │ │ └─miniunz.tlog
│ │ ├─MiniUnzipRelease
│ │ │ └─Tmp
│ │ │ └─miniunz.tlog
│ │ ├─MiniZipDebug
│ │ │ └─Tmp
│ │ │ └─minizip.tlog
│ │ ├─MiniZipRelease
│ │ │ └─Tmp
│ │ │ └─minizip.tlog
│ │ ├─TestZlibDebug
│ │ │ └─Tmp
│ │ │ └─testzlib.tlog
│ │ ├─TestZlibDllDebug
│ │ │ └─Tmp
│ │ │ └─testzlibdll.tlog
│ │ ├─TestZlibDllRelease
│ │ │ └─Tmp
│ │ │ └─testzlibdll.tlog
│ │ ├─TestZlibRelease
│ │ │ └─Tmp
│ │ │ └─testzlib.tlog
│ │ ├─ZlibDllDebug
│ │ │ └─Tmp
│ │ │ └─zlibvc.tlog
│ │ ├─ZlibDllRelease
│ │ │ └─Tmp
│ │ │ └─zlibvc.tlog
│ │ ├─ZlibStatDebug
│ │ │ └─Tmp
│ │ │ └─zlibstat.tlog
│ │ └─ZlibStatRelease
│ │ └─Tmp
│ │ └─zlibstat.tlog
│ └─vc9
├─doc
├─examples
├─msdos
├─nintendods
├─old
│ └─os2
├─os400
├─qnx
├─test
├─watcom
└─win32打开vs2015开发人员命令工具(管理员身份打开)如下图
输入如下命令初始化环境
1.
cd vc
按下回车键2.
vcvarsall.bat
按下回车键
切换到ZLIB源码根目录下进入到contrib\masmx86 下 执行如下命令
.\bld_ml32.bat
然后进入到\contrib\vstudio 目录下 选择你对应的Visual Studio版本<因为我这里是Visual Studio 2015> 所以我选择进入\contrib\vstudio\vc14
打开zlibvc.sln 后会看到如下项目
zlibvc 是动态链接库、而我们不是编译动态链接库所以用不到
我们需要的是zlibstat 这个项目 也就是静态链接库
编译这个项目之前不要着急编译,下面这几部是必须要做的。
默认情况下Zlibstat 静态库也好 或者zlibvc动态库也好 都是以masmx64位编译模式来加载文件的如下图
inffas8664.c
这个文件是masmx64的,但是我们编译的是x86的也就是32位应用程序的所以这里我们需要改成contrib\inflate86下的
inffas86.c
只需要将
inffas8664.c
这个文件从项目中排除,从新添加contrib\inflate86下的inffas86.c
到项目中编译即可!这样编译的静态库再调用minizip 压缩解压缩zip文件的时候才不会出错!
vs2015编译zlib静态库步骤的更多相关文章
- dlib编译成静态库及被其它程序调用
一.git下载:https://github.com/davisking/dlib 官网:http://dlib.net/ 二.vs中编译成静态库 1.在vs2015中创建静态库工程(vs2015以上 ...
- 【转】iOS编译OpenSSL静态库(使用脚本自动编译)
原文网址:https://www.jianshu.com/p/651513cab181 本篇文章为大家推荐两个脚本,用来iOS系统下编译OpenSSL通用库,如果想了解编译具体过程,请参看<iO ...
- 使用CMake编译跨平台静态库
在开始介绍如何使用CMake编译跨平台的静态库之前,先讲讲我在没有使用CMake之前所趟过的坑.因为很多开源的程序,比如png,都是自带编译脚本的.我们可以使用下列脚本来进行编译: . / con ...
- 编译skia静态库时,图片解码库无法注册的问题
转载:http://www.cnblogs.com/imlucky/archive/2012/08/01/2617851.html 今天编译skia库,增加图片解码库时总是无效.按照此博客的方法修改后 ...
- C++开发新版本vs使用旧版本vs编译的静态库动态库
关于vs潜在的升级问题概述 (Visual C++)查看官网的介绍:潜在的升级问题概述 (Visual C++).主要问题: 1. 如果使用 /GL(全程序优化)进行编译,则生成的对象文件只能使用生成 ...
- 为iOS编译FFmpeg静态库
为iOS编译FFmpeg静态库 环境:OS X Yosemite (版本10.10.5) Xcode (Version 7.1.1 (7B1005)) 一.资料准备: (1)ffmpeg源 ...
- VS2015——命令行下编译、静态库动态库制作以及断点调试
c程序编译流程 程序的基本流程如图: 1. 预处理 预处理相当于根据预处理指令组装新的C/C++程序.经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的 ...
- linux下 GCC编译链接静态库&动态库
静态库 有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库, 我们在不同的程序中都会用到libc中的库函数(例如printf),也会用到libc中的变量(例如以后 ...
- Mac OS X10.10_xcode6.1_ios8.1环境下,编译lame静态库libmp3lame.a,支持arm64 armv7s x86_64 i386 armv7指令集
近期升级了系统到Mac OS X 10.10 而且更新了XCode6.1和iOS 8.1 之前app用到的libmp3lame.a静态库.也要支持64位的模拟器(x86_64)和64位的真机(arm6 ...
随机推荐
- 走近科学,探究阿里闲鱼团队通过数据提升Flutter体验的真相
背景 闲鱼客户端的flutter页面已经服务上亿级用户,这个时候Flutter页面的用户体验尤其重要,完善Flutter性能稳定性监控体系,可以及早发现线上性能问题,也可以作为用户体验提升的衡量标准. ...
- @loj - 2174@ 「FJOI2016」神秘数
目录 @description@ @solution@ @accepted code@ @details@ @description@ 一个可重复数字集合 S 的神秘数定义为最小的不能被 S 的子集的 ...
- vmware中centos、redhat桥接网络配置
第一步 第二步 第三步 centos: redhat:
- HZOJ 礼物
其实是比较简单的一道期望状压dp,考试时一直在想数组表示概率,然而最后出的数总是小于一,于是无奈的把第一个点判掉放弃了其他点. 设f[i]为状态为i时到全部买到的期望次数,$f[i]=∑f[j]*p[ ...
- day2_python之字符编码
一 .计算机基础知识 二.文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的, ...
- H3C路由器Telnet服务配置命令
- 【codeforces 777E】Hanoi Factory
[题目链接]:http://codeforces.com/problemset/problem/777/E [题意] 让你摆汉诺塔片; 要求在上面的片的外圈大于在下面的片的内圈,且小于下面的片的外圈; ...
- Mysql错误:#1054 - Unknown column 'id' in 'field list' 解决办法
第一次用mysql,在插入数据时,竟然报这样的错误, #1054 - Unknown column 'id' in 'field list'
- Element-ui学习笔记1
1.col,row布局注意事项 el-row el-col gutter就是css,span的时候宽度是按boder-box来计算. 将 type 属性赋值为 'flex',可以启用 flex 布局, ...
- HTML5有哪些新特性?移除了哪些元素?
HTML5新特性: 拖放(Drag and drop)API 语义化标签(header.nav.footer.section.article.aside) 音频.视频(audio.video)API ...